2011-10-12 19 views
27

मैं अजगर में एक साधारण सॉर्ट प्रोग्राम लिख रहा हूं और इस त्रुटि का सामना कर रहा हूं। मैं सूची तत्वों को स्वैप करना चाहता हूं लेकिन यह एक त्रुटि देता है। मैं नीचे प्रश्न में त्रुटि और कार्यक्रम संलग्न कर रहा हूँ।पायथन: TypeError: 'tuple' ऑब्जेक्ट आइटम असाइनमेंट का समर्थन नहीं करता

list[i+1] = list[i] 

TypeError: 'tuple' object does not support item assignment 
def my_sort(list): 
    for index in range(1,len(list)): 
     value=list[index] 
     i=index-1 
     while i>=0: 
      if value<list[i]: 
       list[i+1] = list[i] 
       list[i]=value 
       i=i-1 
      else: 
       break 
    return 

    input_list=eval(input("Enter list items")) 
    my_sort(input_list) 
    print(input_list) 
+1

शब्द सूची का उपयोग न करें। क्या आप कोड को सही ढंग से इंडेंट कर सकते हैं? – lc2817

+12

कृपया * कभी भी * एक चर "कॉल" कॉल न करें। "सूची" एक अंतर्निहित प्रकार है। अब आप इसे एक सूची में 'सूची (चीज़)' के साथ एक सूची में परिवर्तित नहीं कर सकते हैं। –

+0

* दुनिया में क्यों * क्या आप eval का उपयोग करेंगे? ',' और फिर अतिरिक्त रिक्त स्थान को विभाजित करने के लिए एक बहुत ही आसान समाधान होगा। – Dev

उत्तर

43

का मूल्यांकन (1, 2, 3) में "1,2,3" परिणाम, एक tuple। जैसा कि आपने पाया है, tuples अपरिवर्तनीय हैं। प्रसंस्करण से पहले एक सूची में कनवर्ट करें।

+0

मैं अजगर के लिए नया हूँ। क्या आप कृपया मेरी मदद कर सकते हैं कि टुपल को सूची में कैसे परिवर्तित करें? या बेहतर, उपयोगकर्ता इनपुट को सीधे कैसे सूचीबद्ध करें? –

+8

सीधे एक सूची इनपुट करने के लिए, वर्ग ब्रैकेट के साथ अनुक्रम को घेरे: "[1,2,3]"। किसी सूची में कनवर्ट करने के लिए, इसे सूची निर्माता को पास करें: 'एल = सूची (एस)'। –

+0

@ जॉन कॉनर: आप http://docs.python.org/tutorial/ पढ़ना चाहेंगे –

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