1. 程式人生 > >列表、字典、元組、集合的區別以及各自的使用方法

列表、字典、元組、集合的區別以及各自的使用方法

區別:


1. 列表
列表、元組、字典、集合的區別是python面試中最常見的一個問題。這個問題雖然很基礎,但確實能反映出面試者的基礎水平。

        list是處理一組有序專案的資料結構,即你可以在一個列表中儲存一個序列的專案。列表中的專案。列表中的專案應該包括在方括號中,這樣python就知道你是在指明一個列表。一旦你建立了一個列表,你就可以新增,刪除,或者是搜尋列表中的專案。由於你可以增加或刪除專案,我們說列表是可變的資料型別,即這種型別是可以被改變的,並且列表是可以巢狀的。python裡的列表用“[]”表示:  

lst = ['arwen',123]
print lst[0] 
print lst[1]

lst[0] = 'weiwen'

  向list中新增項有兩種方法:append和extend。append

2. 元組

  元祖和列表十分相似,不過元組是不可變的。即你不能修改元組。元組通過圓括號中用逗號分隔的專案定義。元組通常用在使語句或使用者定義的函式能夠安全的採用一組值的時候,即被使用的元組的值不會改變。元組可以巢狀。
>>> zoo=('wolf','elephant','penguin')
>>> zoo.count('penguin')
1
>>> zoo.index('penguin')
2
>>> zoo.append('pig')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> del zoo[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

3. 字典
       字典類似於你通過聯絡人名稱查詢地址和聯絡人詳細情況的地址簿,即,我們把鍵(名字)和值(詳細情況)聯絡在一起。注意,鍵必須是唯一的,就像如果有兩個人恰巧同名的話,你無法找到正確的資訊。
       鍵值對在字典中以這樣的方式標記:d = {key1 : value1, key2 : value2 }。注意它們的鍵/值對用冒號分割,而各個對用逗號分割,所有這些都包括在花括號中。另外,記住字典中的鍵/值對是沒有順序的。如果你想要一個特定的順 序,那麼你應該在使用前自己對它們排序。
例項:
#coding=utf-8
dict1={'zhang':'張家輝','wang':'王寶強','li':'李冰冰','zhao':'趙薇'}
#字典的操作,新增,刪除,列印
dict1['huang']='黃家駒'
del dict1['zhao']
for firstname,name in dict1.items():
    print firstname,name
結果:
li 李冰冰
wang 王寶強
huang 黃家駒
zhang 張家輝

定義dict.fromkeys(range(30),value) 可以形成一個雙列的列表相當於java中的map,這個鍵值對列表儲存子dict中

取鍵可以通過迴圈 for eachkey in dict.keys(): 把所有的鍵賦值到eachkey中去

取值可以通過迴圈 for eachkey in dict.values(): 把所有的值賦值到eachkey中去

取鍵值對站執行緒元組的形式 for eachItem in dict.item(): 把所有的鍵值對轉化成元組的方式賦值給eachItem中

4. 集合(set)

(1) 特性:與字典類似,但只包含鍵,而沒有對應的值,包含的資料不重複。

(2) 建立:s = set(list or tuple or string)。重複的值在集合中只存在一個。如:

    列表list:s = set([1,2,3,3]) ->s = set([1,2,3])

    元組tuple:s = set((1,2,3))  ->s = set([1,2,3])

    字串string:s = set("abc") ->s = set(["a","b","c"])