2012-01-19 53 views
6

我正在Python(3.2.2)shell的Windows 7操作系統上工作。努力學習我進入了語言,並返回以下:Python'set'對象不支持索引

>>> 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是一樣的。在Python的shell準備好使用之前,我需要做些什麼?

hans

+0

是你已經張貼在這裏有什麼完整的代碼?它看起來像你正在定義一個字典,然後嘗試使用列表符號來訪問它。你應該在這裏看到一個語法錯誤。嘗試cast = [「cleese」,「Palin」,「Jones」,「Idle」]。注意'[''而不是'{' – timc

回答

18

Python似乎工作正常。問題是set不支持索引或附加。嘗試使用列表來代替([]而不是{})。代替追加,set已有add,但索引已刪除。

和Python具有有益的幫助,

>>> help(set) 

打印了很多信息關於set S的。

4

看來你是在試圖定義一個列表。但是,您使用了大括號{}而不是括號[]。解釋器將其視爲字典而不是列表,因此索引和append()在此不起作用。

+2

正如在舊的答案中所述,解釋器將'cast'視爲一個集合,而不是字典。沒有鍵/值對來組成字典。 – alexwlchan

0

此處只提及set's'不支持索引,因爲它們是基於散列的,它與dictionaries非常相似,它們也不支持索引。您只能通過key訪問dict

如果你需要索引,您可以將您的設置如下:

convertedToList = list(set(1,2,3))