python學習筆記三:元組和集合
阿新 • • 發佈:2018-12-16
學習python的小夥伴們經常會有這樣一個疑問,既然有列表裡,問什麼還要有元組呢。因為列表是可變的,而元組是不可變的。比如我們經常需要傳入函式的資料是不變的,這時就要用到元組了。
def info(a):
a[0] = 'haha'
return a
a = [1,2,3]
info(a)
執行結果:['haha', 2, 3]
b = (1,2,3)
info(b)
執行結果:TypeError: 'tuple' object does not support item assignment
想要改變元組裡的元素,可以先將元組轉換成列表,元素變換之後再轉換成元組,實際上是重新建立了物件。
a = (1,2,3)
b = list(a)
b[0] = 5
a = tuple(b)
print(a)
執行結果:(5, 2, 3)
集合是沒有序列的,而且裡面的元素是唯一的,重複的元素會被自動剔除掉。
建立集合:
- 用花括號{}
- set()
#建立集合
a = set(['a',2,3])
print(a)
執行結果:{2, 3, 'a'}
b = set('abc')
print(b)
執行結果:{'a', 'b', 'c'}
集合元素的新增與去除:
a = set(['a',2,3]) #add新增 a.add('tong')#將整個元素新增進來 print(a) 執行結果:{'tong', 2, 3, 'a'} #update新增 a.update('tong')#將字串拆開新增進來 print(a) 執行結果:{'tong', 2, 3, 'n', 'a', 't', 'o', 'g'} #集合元素的去除 a.remove('tong') print(a) 執行結果:{2, 3, 'n', 'a', 't', 'o', 'g'}
集合的成員關係:
a = set('abc')
'b' in a
執行結果:True
集合的交集、並集與差集:
a = set('abc')
b = set('bcd')
print(a&b)#交集
print(a|b)#並集
print(a-b)#差集
執行結果:
{'c', 'b'}
{'d', 'a', 'b', 'c'}
{'a'}
結合集合刪除列表裡面的元素:
a = [1,2,3,1,3]
b = set(a)
print(b)
c = list(b)
print(c)
執行結果:
{1, 2, 3}
[1, 2, 3]
凍結集合:
#凍結集合 a = frozenset('abc')#集合則不可修改 a.add('d') 執行結果:AttributeError: 'frozenset' object has no attribute 'add'