集合是一個無序不重複元素的序列
創建集合可以使用大括號 {} 或者 set() 函數創建集合
創建一個空集合必須用 set() 而不是 {},因為 {} 是用來創建一個空字典
set(value) 方式創建集合,value 可以是字符串、列表、元組、字典等序列類型
創建、添加、修改等操作,集合會自動去重
{1, 2, 1, 3} # {} {1, 2, 3}
set('12345') # 字符串 {'3', '5', '4', '2', '1'}
set([1, 'a', 23.4]) # 列表 {1, 'a', 23.4}
set((1, 'a', 23.4)) # 元組 {1, 'a', 23.4}
set({1:1, 'b': 9}) # 字典 {1, 'b'}
將元素 val 添加到集合 set 中,如果元素已存在,則不進行任何操作:
set.add(val)
也可以用 update 方法批量添加元素,參數可以是列表,元組,字典等:
set.update(list1, list2,...)
移除元素如果存在元素 val 則移除,不存在就報錯:
set.remove(val)
如果存在元素 val 則移除,不存在也不會報錯:
set.discard(val)
隨機移除一個元素:
set.pop()
元素個數與其他序列一樣,可以用 len(set) 獲取集合的元素個數。
清空集合set.clear()
set = set()
val in set
其他方法set.copy()
複製集合
set.difference(set2)
求差集,在 set 中卻不在 set2 中
set.intersection(set2)
求交集,同時存在於 set 和 set2 中
set.union(set2)
求併集,所有 set 和 set2 的元素
set.symmetric_difference(set2)
求對稱差集,不同時出現在兩個集合中的元素
set.isdisjoint(set2)
如果兩個集合沒有相同的元素,返回 True
set.issubset(set2)
如果 set 是 set2 的一個子集,返回 True
set.issuperset(set2)
如果 set 是 set2 的一個超集,返回 True
集合計算a = set('abracadabra')
b = set('alacazam')
print(a) # a 中唯一的字母
# {'a', 'r', 'b', 'c', 'd'}
print(a - b) # 在 a 中的字母,但不在 b 中
# {'r', 'd', 'b'}
print(a | b) # 在 a 或 b 中的字母
# {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
print(a & b) # 在 a 和 b 中都有的字母
# {'a', 'c'}
print(a ^ b) # 在 a 或 b 中的字母,但不同時在 a 和 b 中
# {'r', 'd', 'b', 'm', 'z', 'l'}
a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)
# {'d', 'r'}
if 表達式1:
語句
if 表達式2:
語句
elif 表達式3:
語句
else:
語句
elif 表達式4:
語句
else:
語句
1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。3、在 Python 中沒有 switch - case 語句。
三元運算符:
<表達式1> if <條件> else <表達式2>
編寫條件語句時,應該儘量避免使用嵌套語句。嵌套語句不便於閱讀,而且可能會忽略一些可能性。
for 遍歷for <循環變量> in <循環對象>:
<語句1>
else:
<語句2>
else 語句中的語句2隻有循環正常退出(遍歷完所有遍歷對象中的值)時執行。
在字典中遍歷時,關鍵字和對應的值可以使用 items() 方法同時解讀出來:
knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
print(k, v)
在序列中遍歷時,索引位置和對應值可以使用 enumerate() 函數同時得到:
for i, v in enumerate(['tic', 'tac', 'toe']):
print(i, v)
同時遍歷兩個或更多的序列,可以使用 zip() 組合:
questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
print('What is your {0}? It is {1}.'.format(q, a))
要反向遍歷一個序列,首先指定這個序列,然後調用 reversed() 函數:
for i in reversed(range(1, 10, 2)):
print(i)
要按順序遍歷一個序列,使用 sorted() 函數返回一個已排序的序列,並不修改原值:
basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
for f in sorted(set(basket)):
print(f)
while<條件>:
<語句1>
else:
<語句2>
break 語句用在 while 和 for 循環中,break 語句用來終止循環語句,即循環條件沒有 False 條件或者序列還沒被完全遞歸完,也會停止執行循環語句。 continue 語句用在 while 和 for 循環中,continue 語句用來告訴 Python 跳過當前循環的剩餘語句,然後繼續進行下一輪循環。continue 語句跳出本次循環,而 break 跳出整個循環。
pass 是空語句,是為了保持程序結構的完整性。pass 不做任何事情,一般用做佔位語句。
第一節課回顧:Python優點、基礎語法、Python簡單運行
第二節課回顧:Python 3入門基礎:運算符知識點詳解(2)
第三節課回顧:變量、數據類型知識點詳解(3)
第四節課回顧:Python 3入門基礎:字符串、字節基礎知識詳解(4)
第五節課回顧:Python 3入門基礎:元祖知識點學習(5)
人工智慧爆發,Python是最適合人工智慧的程式語言。如果你想學習Python,我為你準備了免費資料:-回復「入門」下載《 Python編程:從入門到實踐》