2009-05-04 8 views
11

मैं एक सूची है कहते हैं:स्ट्रिंग्स संख्याओं को एक सूची में पूर्णांक में कैसे परिवर्तित करें?

['batting average', '306', 'ERA', '1710'] 

मैं कैसे तार को छुए बिना इरादा संख्या में बदल सकते हैं?

सहायता के लिए धन्यवाद।

उत्तर

41
changed_list = [int(f) if f.isdigit() else f for f in original_list] 
+3

एक सुरुचिपूर्ण एक-लाइनर। सूची समझ की शक्ति देखें। – mkClark

+0

इसी तरह की लाइनों पर विचार कर रहा था – Nope

+0

अच्छा समाधान लेकिन यदि सूची में फ्लोट वैल्यू भी हैं, तो '[' बल्लेबाजी औसत ',' 306 ',' ईआरए ',' 1710.5 ']' –

5

डेटा जैसा दिखता है कि आपको पता चलेगा कि संख्याएं किस स्थिति में हैं। इस मामले में यह शायद बेहतर है स्पष्ट रूप से कुछ भी है कि एक नंबर की तरह दिखता है परिवर्तित करने के बजाय इन पदों पर डेटा कन्वर्ट करने के लिए:

ls = ['batting average', '306', 'ERA', '1710'] 
ls[1] = int(ls[1]) 
ls[3] = int(ls[3]) 
+0

हाँ स्थिर स्थिति के लिए यह सबसे अच्छा समाधान है, जबकि एलेक्स गतिशील मामले के लिए सबसे अच्छा है। – Unknown

5

आज़माएं:

def convert(someList): 
    for item in someList: 
     try: 
      yield int(item) 
     except ValueError: 
      yield item 

newList= list(convert(oldList)) 
0
a= ['batting average', '306', 'ERA', '1710.5'] 

[f if sum([c.isalpha() for c in f]) else float(f) for f in a ] 

अगर अपनी सूची नाव शामिल , स्ट्रिंग और int (जैसा कि टिप्पणी में @ d.putto द्वारा इंगित किया गया है)

+1

'sum ([c.isalpha() f में c के लिए]] 'जांचने के लिए काफी उप-इष्टतम तरीका है" यदि एफ में कोई वर्ण वर्णमाला है "- किसी भी (c.isalpha() को c में f के लिए प्रयास करें) बेहतर पठनीयता और प्रदर्शन के लिए। बेशक, दोनों 'एफ' उदाहरण के लिए बराबर होंगे, '' '- एक स्ट्रिंग जो संख्या नहीं है लेकिन इसमें कोई अल्फान्यूमेरिक वर्ण नहीं है - और यह भी परिवर्तित करने में विफल रहता है जैसे' '1.7e3'' - एक स्ट्रिंग इसमें अल्फान्यूमेरिक चार होता है लेकिन फिर भी 'फ्लोट' ("घातीय नोटेशन") के तर्क के रूप में पारित होने के लिए पूरी तरह से ठीक होगा। –

+0

सच। अच्छा बिंदु ... इसे सिर्फ d.putto के विशिष्ट उत्तीर्ण उदाहरण का उत्तर देने के लिए पोस्ट किया गया। मेरे आधे बेक्ड जवाब पोस्ट करने से पहले और अधिक विचार करना चाहिए था! –

संबंधित मुद्दे

 संबंधित मुद्दे