接著我們繼續(xù)學(xué)習(xí)字典的類型轉(zhuǎn)換。
dict這個方法和列表的list方法一樣,同樣也可以把迭代對象,也就是可以被for循環(huán)的類型轉(zhuǎn)換成字典類型,但前提是這個可迭代對象的每一個元素里都是存的兩個值才可以。
比如我定義一個列表l,它是可迭代對象對吧,然后它里面存的元素,每一個元素都必須是兩個值,也就是說里面必須嵌套一個容器類型。
比如我嵌套一個元組,這個元組里寫兩個值,一個是key,一個是value,然后再嵌套一個列表也是可以的。
l = [('name', '于謙'), ['age', 18]]
print(dict(l))
結(jié)果就轉(zhuǎn)成字典了,要注意必須是這種格式才可以轉(zhuǎn),你可以外面是元組,里面嵌套列表也可以,只是里面嵌套的值都是成對的就行。
如果我里面嵌套三個值的話,就直接報錯了。
l = [('name', '于謙'), ['age', 18], ['a', 'b', 'c']]
print(dict(l))
如果是一個值,也會報錯。
l = [('name', '于謙'), ['age', 18], ['a']]
print(dict(l))
我們接下去看字典的一些基本操作。
首先就是按key取值和按key改值。這沒什么可講的,和列表一樣,只不過列表是按索引取值和改值。和列表不一樣的是如果key不存在,字典是可以按key增加值的。
而在列表里面,如果索引不存在的話,你為其賦值的話就會直接報錯。
我先定義一個字典,然后增加一個值。打印下看。
dic = {'a': 1, 'b': 2}
dic['c'] = 3
print(dic)
我們再來看取值,取值有兩種操作,第一種取值操作比較簡單,不多說了。
dic = {'a': 1, 'b': 2}
print(dic['a'])
我們繼續(xù)看取值的第二種用法。
dic = {'a': 1, 'b': 2, 'c': 3}
print(dic.get('a'))
這種取值方法和上面的方法相比,如果字典里沒有這個key,那么打印結(jié)果就是None。而上面的方法,字典里沒有key,那么就會直接報錯。
我就不多演示了。你們自己可去試試。
字典沒有像列表那樣還給我們提供append和insert這種功能。
有的同學(xué)就想問,如果我要插入值怎么辦呢?
其實列表是有序的,我們要取值必須通過它的索引排序來進(jìn)行取值,所以列表就有插入到某一個位置這種功能。
但是對于字典來說,字典是無序的,字典里不存在把一個值插入到某一個位置這種說法,在我們操作字典的時候,看著字典好像有序。
定義的字典元素和打印出來的字典元素它們的順序都是一樣的,這其實是元素添加到字典的先后順序,它并不會像列表一樣把這個順序做為我們?nèi)≈档囊罁?jù)。
還需要注意的是字典的每一個key都是唯一的,拿上面的代碼舉例。
dic = {'a': 1, 'b': 2,'b':3}
print(dic)
結(jié)果你就會發(fā)現(xiàn),只會打印一個b,而且后面的value是最后一個3,而不是2。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 字典類型2