不支援+,*, index, slice(因為集合無序不重複的)
支援in和not in
add: 新增單個元素
update: 新增多個元素
remove: 如果元素存在,刪除,否則報錯
discard: 如果元素存在,刪除,否則do nothing
pop: 隨機
刪除元素,集合為空則報錯
不支援+,*, index, slice(因為集合無序不重複的)
支援in和not in
集合(set)是乙個無序的不重複元素序列
。1,2,3,4,1,2,3 = 1,2,3,4
1). 使用大括號 或者 set() 函式建立集合;
2). 注意:
建立乙個空集合必須用 set() 而不是
是用來建立乙個空字典。
s = #
print(s, type(s))
在輸出的時候直接去重
注意點1: 集合的元素必須時不可變資料型別。
s = ###列表是可變資料型別,所以這種書寫錯誤
注意點2:空集合不能使用{}, 而要使用set()
s = set()
print(1 in )
import random
n = int(input("輸入n:"))
s=set()
for i in range(n):
s.add(random.randint(1,1000))
print(sorted(s,reverse=true))
s =
s.add(100) #
s =
s.update() #
s =
s.remove(3)
print(s)
s =
s.discard(100)
print(s)
s =
s.pop()
print(s)
差集:s1 - s2
交集:s1 & s2
對稱差分:
s1 ^ s2
並集:s1 | s2
s1 =
s2 =
print(s1 - s2)
#
print(s1 & s2)
#
s1 =
s2 =
print(s1 ^ s2)
# ,- =
並集h減去交集,即連個集合中不重複元素的集合
print(s1 | s2)
#
print(s1.issubset(s2)) # false
print(s1.isdisjoint(s2)) # false
因此 set 集合中所有能改變集合本身的方法(如 add、remove、discard、***_update 等),frozenset 都不支援;set 集合中不改變集合本身的方法,fronzenset 都支援。
s = frozenset()
print(s, type(s)) #
一種可變容器模型,且可儲存任意型別物件。 鍵一般是唯一的,如果重複最後的乙個鍵值對會替換前面的,值不需要唯一
key-value對或者鍵值對
d =
print(d, type(d))
d = {}
#空字典
d =
print(『name』 in d) # true, 判斷是否為所有key值得成員
print(「westos」 in d) # false
檢視所有
keys, values, items
檢視區域性
d[key], d.get(key), d.get(key, default-value)
d =
print(d.keys())
# 檢視字典所有的key值
print(d.values())
# 檢視字典所有的value值
print(d.items())
# 檢視字典所有的key-value值(item元素)
print(d[『name』])
# 檢視key為name對應的value值
print(d[『province』])
# 檢視key對應的vlaue值,如果不存在會報錯。
print(d.get('province'))
# 檢視key對應的vlaue值, 如果存在則返回,如果不在在則返回none.
print(d.get('province', "陝西"))
# 檢視key對應的vlaue值, 如果存在則返回,如果不在在則返回預設值.
d =
d[『city』] = 「西安」
key不存在就新增
print(d) #
d[『city』] = 「北京」
key存在則修改value值
print(d) #
d =
d.setdefault(『city』, 「西安」) # key不存在就新增
print(d)
d.setdefault(『city』, 「北京」) # key存在,則do nothing
print(d)
d =
d.pop(『name』)
print(d)
d =
del d[『name』]
print(d)
d =
預設情況下,字典只會遍歷key值
for item in d:
print(item)
name
agecity
如果遍歷字典的key和value呢?(特別特別重要)
for key,value in d.items(): # [('name', 'westos'), ('age', 18), ('city', '西安')]
print(f"key=, value=")
key=name,value=westos
key=age,value=18
key=city,value=西安
defaultdict 提供default_factory 屬性,該為不存在的 key 來自動生成生成預設的 value。
from collections import defaultdict
# 預設字典,設定預設value
d = defaultdict(int)
d['views'] += 1
d['transfer'] += 1
print(d) #defaultdict(, )
d = defaultdict(list)
d['deny_users'].extend(['user1', 'user2'])
print(d) #)
d = defaultdict(set)
d['love_movies'].add("黑客帝國")
d['dislike_movies'].update()
print(d) #, 'dislike_movies': })
兩數之和:
無重複的最長子串:
python字典元組集合內建方法
字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 dict 鍵必須是唯一的,但值則不必。dict 1.按key取值 print dict username dlrb print d1 鍵...
python 字典與集合
字典與集合 1.字典 字典的標誌是大括號 列表的標誌是中括號,元組的標誌是逗號 字典的形式,鍵可以是整形,可以是字串。2.dict函式 方法一 dict函式可以把乙個列表或元組構成乙個字典,dict 乙個引數 只能有乙個引數,所以例子中要使用多個括號使其成為乙個引數。方法二 形式 dict key ...
python字典與集合
字典就如同其表面意思一樣,乙個鍵對應乙個值,可以用鍵來訪問相應的值,其值可以取任意資料型別。字典的每個鍵值 key value 對用冒號 分割,每個鍵值對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 dic 鍵一般是唯一的,如果重複最後的乙個鍵值對會替換前面的,值不需要唯一。鍵必須是不可...