2010-08-13 8 views
8

मैं ऐसे "3 ,2 ,6 " के रूप में पूर्णांक के एक स्ट्रिंग में पढ़ रहा हूँ और उन्हें पूर्णांक के रूप में सूची [3,2,6] में चाहते हैं। यह हैक करना आसान है, लेकिन इसे करने का "पायथन" तरीका क्या है?"पायथनिक" विधि पूर्णांक की सूची में अल्पविराम से अलग पूर्णांक की स्ट्रिंग को पार्स करने के लिए?

उत्तर

21
mylist = [int(x) for x in '3 ,2 ,6 '.split(',')] 

और अगर आप वाकई में केवल अंक होगा (या अन्य अभी नहीं करना चाहते) नहीं कर रहे हैं: का उपयोग कर उत्पादन कोड के लिए

mylist = [int(x) for x in '3 ,2 ,6 '.split(',') if x.strip().isdigit()] 
+3

मुझे लगता है कि आप इसे थोड़ा पीछे की ओर है: ' '3,2,6'.split (', ')' –

+1

@orangeoctopus यह वैसे भी ठीक काम करता है, 'खाली स्थान के – delnan

+0

@orangeoctupus आसपास त्यागने int' - हाँ , जब मैंने महसूस किया कि मैंने इसे संपादित किया। लेकिन जाहिरा तौर पर मैं एक लोमड़ी की तरह तो यह प्रदर्शित नहीं करता है मैं इसे संपादित किया है (कम से कम मेरे लिए ...) जल्दी कर रहा हूँ;) –

6

जबकि एक कस्टम समाधान अजगर के बारे में आप सिखा देगा, csv मॉड्यूल सबसे अच्छा विचार है। प्रारंभिक रूप से प्रकट होने से अल्पविराम से अलग डेटा अधिक जटिल हो सकता है।

+0

मुझे आश्चर्य है कि अल्पविराम से अलग पूर्णांक कैसे जटिल होते हैं? –

+1

@ अनुराग: किसने कहा कि उन्हें पूर्णांक होना चाहिए? ओपी ने केवल नमूना डेटा प्रदान किया ... – katrielalex

+0

@Anurag: "उसे मछली के लिए सिखाओ ..." - कभी सुना है कि कहानी? मैं यही करने की कोशिश कर रहा हूं। कॉमा की एक स्ट्रिंग को पार्स करना शायद ही कभी * कार्य * हल करने का प्रयास करता है, इसके पीछे और जटिल आवश्यकताएं होती हैं। अगर मैं गलत हूँ, कोई नुकसान किया है, अन्य उत्तर सरल तरीका –

13
map(int, myString.split(',')) 
+1

+1 की एक सूची पढ़ने के लिए सीएसवी मॉड्यूल का उपयोग कर की तरह, की जरूरत है:, वास्तव में, जबकि व्यक्तिगत रूप से मैं कार्यात्मक शैली से प्यार है, सूची comprehensions, अधिक pythonic –

+5

@Matt होने के लिए पूर्णांकों –

+0

@Eli हैं 100% –

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