सभी स्ट्रिंग को सूची में कनवर्ट करें int


603

अजगर में, मैं एक सूची में सभी तार को पूर्णांक में बदलना चाहता हूं।

तो अगर मेरे पास है:

results = ['1', '2', '3']

मैं इसे कैसे बनाऊं:

results = [1, 2, 3]

जवाबों:


1171

mapफ़ंक्शन का उपयोग करें (पायथन 2.x में):

results = map(int, results)

पायथन 3 में, आपको परिणाम mapको सूची से बदलने की आवश्यकता होगी :

results = list(map(int, results))

23
मैं इंगित करना चाहता हूं कि पाइलिंट के उपयोग को हतोत्साहित करता है map, इसलिए यदि आप कभी भी उस मानक का उपयोग करते हैं तो सूची समझ का उपयोग करने के लिए तैयार रहें । :)
थोरसुमोनर

6
प्रतिलोम (स्ट्रिंग की सूची के लिए int की सूची बदलने के लिए) है: नक्शा (str, परिणाम)
अली ISSA

12
आप इस उत्तर को सरल बना सकते हैं: बस हमेशा उपयोग करें list(map(int, results)), यह किसी भी पायथन संस्करण के लिए काम करता है।
mvp

377

सूची समझ का उपयोग करें :

results = [int(i) for i in results]

जैसे

>>> results = ["1", "2", "3"]
>>> results = [int(i) for i in results]
>>> results
[1, 2, 3]

30
सूची की समझ भी बहुत अच्छी है। ओपी करने के लिए - नक्शे और सूची समझ का एक अच्छा विपरीत देखने के लिए यहां देखें: stackoverflow.com/questions/1247486/…
cheeken

3

सूची बोध की तुलना में थोड़ा अधिक विस्तारित लेकिन इसी तरह उपयोगी:

def str_list_to_int_list(str_list):
    n = 0
    while n < len(str_list):
        str_list[n] = int(str_list[n])
        n += 1
    return(str_list)

जैसे

>>> results = ["1", "2", "3"]
>>> str_list_to_int_list(results)
[1, 2, 3]

इसके अलावा:

def str_list_to_int_list(str_list):
    int_list = [int(n) for n in str_list]
    return int_list
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.