2009-04-23 17 views

उत्तर

12
a = 123456 
b = str(a) 
c = [] 

for digit in b: 
    c.append (int(digit)) 

print c 
+18

जो कुछ गुम है वह कुछ घुंघराले ब्रेसिज़ है! ;) –

+5

। आपने मेरा गहरा अंधेरा रहस्य (सी ++) खोला है। मैं अन्य उत्तरदाताओं द्वारा नम्र पाइथन-नेस द्वारा नम्र हूं। – RedBlueThing

+2

कई वर्षों बाद और कुछ समय के लिए पाइथन में काम करने के बाद इस जवाब पर लौट रहा है। यह मेरा पसंदीदा है -> [int) x (x) में x के लिए int (x)] जो @ BjornTipling का उत्तर होता है :) – RedBlueThing

64

आपका मतलब है?

num = 1234 
lst = [int(i) for i in str(num)] 
13

आप ऐसा कर सकता है:

>>> num = 123 
>>> lst = map(int, str(num)) 
>>> lst, type(lst) 
([1, 2, 3], <type 'list'>) 
+5

ध्यान दें कि पायथन 3.0 मानचित्र में एक जनरेटर लौटाएगा, सूची नहीं। – Stephan202

5

शब्द सूची चर नाम के रूप में उपयोग न करें! यह डेटा प्रकार में निर्मित पायथन का नाम है।

इसके अलावा, कृपया अपने प्रश्न को स्पष्ट करें।

a = 123 
my_list = [a] 

और "pythonizing" गोलाबारी का जवाब: आप देख रहे हैं एक एक सदस्य सूची बनाने के लिए एक तरह से करने के लिए, निम्न कार्य करें

a = 123 
my_list = [int(d) for d in str(a)] 
+0

मुझे पाइथोनिज्ड होने पर मुझे यह पसंद है। मुझे अब बहुत अच्छा लगता है। : पी – RedBlueThing

7
magic = lambda num: map(int, str(num)) 

तो बस करना

magic(12345) 

या

magic(someInt) #or whatever 
+0

भगवान द्वारा यह अद्भुत है। – franklin

0

बस का उपयोग करें:

a= str (num) 
lst = list(a) 
+0

जो वर्णों की एक सूची वापस करेगा, * सीधे * पूर्णांक –

6
>>> from collections import deque 
>>> def magic(num): 
     digits = deque() 
     while True: 
      num,r = divmod(num,10) 
      digits.appendleft(r) 
      if num == 0: 
       break 
     return list(digits) 

>>> magic(123) 
[1, 2, 3] 

मेरे समय के अनुसार, इस समाधान, स्ट्रिंग विधि (magic2) की तुलना में काफी तेजी से होता है भी छोटे उदाहरण के लिए।

>>> def magic2(num): 
     return [int(i) for i in str(num)] 

समय:

magic

>>> timeit.timeit(setup='from __main__ import magic', stmt='magic(123)') 
1.3874572762508706 
>>> timeit.timeit(setup='from __main__ import magic', stmt='magic(999999999)') 
3.2624468999981673 

magic2

>>> timeit.timeit(setup='from __main__ import magic2', stmt='magic2(123)') 
3.693756106896217  
>>> timeit.timeit(setup='from __main__ import magic2', stmt='magic2(999999999)') 
10.485281719412114 
+0

यह अधिक उपयोगी उत्तर है। – spider

+0

'@ विल्बेबीबी के जवाब से 'नक्शा (int, str (n))' पाइथन 3 पर परीक्षण किया गया है) पाइथन 3 में –

+0

@ फ़ेलिप बुक्कोनी 'नक्शा' की तुलना में तेज़ है, केवल एक जनरेटर नहीं, बल्कि 'सूची' नहीं। आपको 'सूची (नक्शा (int, str (n))'। 'नक्शा (int, str (n)) की आवश्यकता है,' अपने आप से बहुत कुछ नहीं करता है। – jamylak

1

यह रूप में नामित किया गया है, तो जादू, क्यों न सिर्फ जादू का प्रयोग करें:

def magic(x): 
    if x < 10: 
     return [x] 
    else: 
     return magic(x//10) + [x%10] 
संबंधित मुद्दे