2012-01-19 19 views
6

का समर्थन नहीं करता है मैं एक पायथन (3.2.2) खोल में विंडोज 7 ओएस पर काम कर रहा हूं। मेरे द्वारा डाला भाषा सीखने की कोशिश कर रहा है और निम्नलिखित लौटा था:पायथन 'सेट' ऑब्जेक्ट इंडेक्सिंग

>>> cast = { 
    'cleese', 
    'Palin', 
    'Jones', 
    'Idle' 
    } 
>>> print (cast[1]) 
Traceback (most recent call last): 
    File "<pyshell#12>", line 1, in <module> 
    print (cast[1]) 
TypeError: 'set' object does not support indexing 
>>> cast.append('Gilliam') 
Traceback (most recent call last): 
    File "<pyshell#13>", line 1, in <module> 
    cast.append('Gilliam') 
AttributeError: 'set' object has no attribute 'append' 

==========================

ऐसा लगता है जैसे समस्या कोडिंग में नहीं है, लेकिन प्रोग्राम कैसे स्थापित किया गया था।

मैंने स्थापित, अन-स्थापित और फिर से स्थापित किया है, लेकिन resutl वही है। पाइथन के खोल का उपयोग करने के लिए तैयार होने से पहले मुझे कुछ करने की ज़रूरत है?

हंस

+0

क्या तुम यहाँ पूरा कोड पोस्ट किया है है? ऐसा लगता है कि आप एक नियम परिभाषित कर रहे हैं और फिर सूची नोटेशन का उपयोग करके इसे एक्सेस करने का प्रयास कर रहे हैं। आपको यहां एक वाक्यविन्यास त्रुटि दिखाई देनी चाहिए। कास्ट = ["क्लीज़", "पॉलिन", "जोन्स", "निष्क्रिय"] आज़माएं। पुराने जवाब में बताए गए '{' – timc

उत्तर

18

पायथन ठीक काम करता प्रतीत होता है। मुद्दा यह है कि set अनुक्रमण या संलग्न करने का समर्थन नहीं करता है। इसके बजाय एक सूची का उपयोग करने का प्रयास करें ([]{} के बजाय)। संलग्न करने के स्थान पर, set में add है, लेकिन अनुक्रमण समाप्त हो गया है।

और अजगर उपयोगी मदद है,

>>> help(set) 

जानकारी set बारे में है की एक बहुत कुछ प्रिंट करता है।

4

ऐसा लगता है कि आप एक सूची को परिभाषित करने की कोशिश कर रहे थे। हालांकि, आपने ब्रैकेट्स के बजाय ब्रेसिज़ {} का उपयोग किया []। दुभाषिया ने इसे एक सूची के बजाय एक शब्दकोश के रूप में माना, इसलिए अनुक्रमण और संलग्न() यहां काम नहीं किया।

+2

के बजाय '[' पर ध्यान दें, दुभाषिया 'कास्ट' को सेट के रूप में मानता है, न कि शब्दकोश। एक नियम बनाने के लिए कोई कुंजी/मूल्य जोड़े नहीं हैं। – alexwlchan

0

बस यहां उल्लेख करने के लिए, set's' इंडेक्सिंग का समर्थन नहीं करते हैं, क्योंकि वे हैंश आधारित हैं, यह dictionaries के समान है जो अनुक्रमण का भी समर्थन नहीं करता है। आप key द्वारा केवल dict तक पहुंच सकते हैं।

आप अनुक्रमण की जरूरत है, तो आप इस प्रकार अपने सेट में बदल सकते हैं:

convertedToList = list(set(1,2,3)) 
संबंधित मुद्दे