python中set和dict类型_python从菜鸟到小仙的成长之路-----Dict和Set类型篇
Dict:
花括號 {} 表示這是一個dict,然后按照 key: value, 寫出來即可。最后一個 key: value 的逗號可以省略。
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59,
'Paul': 75
}
print d
注意: 通過 key 訪問 dict 的value,只要 key 存在,dict就返回對應的value。如果key不存在,會直接報錯:KeyError。
要避免 KeyError 發生,有兩個辦法:
一是先判斷一下 key 是否存在,用 in 操作符:
if 'Paul' in d:
print d['Paul']
二是使用dict本身提供的一個 get 方法,在Key不存在的時候,返回None:
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
打印dict:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
print 'Adam:', d['Adam']
print 'Lisa:', d['Lisa']
print 'Bart:', d['Bart']
dict第一個特點是查找速度快.
dict第二個特點就是存儲的key-value序對是沒有順序的,dict內部是無序的,不能用dict存儲有序的集合.
dict的第三個特點是作為 key 的元素必須不可變.
d = {
95: 'Adam',
85: 'Lisa',
59: 'Bart'
}
更新dict:
d = {
95: 'Adam',
85: 'Lisa',
59: 'Bart'
}
d[72] = 'Paul'
print d
遍歷dict:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for k in d:
print k + ':',d[k]
Set:
set 持有一系列元素,這一點和 list 很像,但是set的元素沒有重復,而且是無序的,這點和 dict 的 key很像。
創建 set 的方式是調用 set() 并傳入一個 list:
s = set(['A', 'B', 'C'])
set不能包含重復的元素
訪問set
set不能識別小寫的名字,會被認為是兩個不同的元素
set的特點
1.set的內部結構和dict很像,唯一區別是不存儲value,因此,判斷一個元素是否在set中速度很快。
2.set存儲的元素和dict的key類似,必須是不變對象,因此,任何可變對象是不能放入set中的。
3.set存儲的元素也是沒有順序的。
ep:
months = set(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul','Aug','Sep','Oct','Nov','Dec'])
x1 = 'Feb'
x2 = 'Sun'
if x1 in months:
print 'x1: ok'
else:
print 'x1: error'
if x2 in months:
print 'x2: ok'
else:
print 'x2: error'
遍歷set
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
print x[0] + ':', x[1]
更新set
一是把新的元素添加到set中,二是把已有元素從set中刪除。
添加:add()方法,默認加在后面,如果添加的元素已經存在于set中,add()不會報錯,但是不會加進去了;
刪除:remove()方法,如果刪除的元素不存在set中,remove()會報錯;
ep:
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for x in L:
if x in s:
s.remove(x)
else:
s.add(x)
print s
To be continue.......
總結
以上是生活随笔為你收集整理的python中set和dict类型_python从菜鸟到小仙的成长之路-----Dict和Set类型篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cordova打开文件_Cordova开
- 下一篇: sv队列和动态数组的区别_systemv