2012-12-16 16 views
20

में पूर्णांक को बदलने के लिए integer को list में परिवर्तित करने का सबसे तेज़ और साफ तरीका क्या है?पाइथन

उदाहरण के लिए, 132[1,3,2] और 23[2,3] में बदलें। मेरे पास एक वैरिएबल है जो int है, और मैं अलग-अलग अंकों की तुलना करने में सक्षम होना चाहता हूं, इसलिए मैंने इसे एक सूची में बनाने का विचार किया, क्योंकि मैं केवल int(number[0]), int(number[1]) कर सकता हूं ताकि आसानी से सूची तत्व को int में परिवर्तित कर सकूं अंक संचालन

उत्तर

50

पहली स्ट्रिंग को पूर्णांक कन्वर्ट, और फिर map का उपयोग उस पर int लागू करने के लिए:

>>> num = 132 
>>> map(int, str(num)) #note, This will return a map object in python 3. 
[1, 3, 2] 

या एक सूची समझ का उपयोग करते हुए:

>>> [int(x) for x in str(num)] 
[1, 3, 2] 
+1

मैंने कोशिश की कि तुम क्या लिखा था, लेकिन यह एक ही वापस नहीं किया था के रूप में आप ने क्या किया: >>> num = 132 >>> नक्शा (पूर्णांक, str (संख्या)) 0x1aed510 पर <नक्शा वस्तु > (मुझे नहीं पता कि टिप्पणी कैसे सही है।) – GinKin

+0

@GinKin पाइथन 3 के लिए आपको 'सूची (मानचित्र (int, str (num)) की आवश्यकता है) '। –

2

उपयोग list एक नंबर स्ट्रिंग में बदला पर:

In [1]: list(str(123)) 
Out[2]: ['1', '2', '3'] 
+0

डाउनवोट क्यों? – Tim

+10

@ टिम: यह int की सूची नहीं देता है लेकिन तारों की एक सूची देता है। –

4

सबसे छोटा और सबसे अच्छा तरीका पहले से ही उत्तर है, लेकिन पहली बात मैं के बारे में सोचा गणितीय रास्ता नहीं था, इसलिए यहाँ यह है:

def intlist(n): 
    q = n 
    ret = [] 
    while q != 0: 
     q, r = divmod(q, 10) # Divide by 10, see the remainder 
     ret.insert(0, r) # The remainder is the first to the right digit 
    return ret 

print intlist(3) 
print '-' 
print intlist(10) 
print '--' 
print intlist(137) 

यह सिर्फ एक और दिलचस्प दृष्टिकोण, आप निश्चित रूप से व्यावहारिक तौर पर ऐसी बात का उपयोग करने की जरूरत नहीं है है मामलों।

+2

'list.insert (0, आइटम)' 'ओ (एन) 'ऑपरेशन है। आप इसके बजाय 'list.append (item)' का उपयोग कर सकते हैं और अंत में सूची को उलट सकते हैं: 'ret [:: - 1] '। – jfs

0
n = int(raw_input("n= ")) 

def int_to_list(n): 
    l = [] 
    while n != 0: 
     l = [n % 10] + l 
     n = n // 10 
    return l 

print int_to_list(n) 
+2

कृपया एक स्पष्टीकरण जोड़ें और न केवल कोड। समझाओ कि यह क्या करता है। – MLavrentyev