python的字典和集合你了解嗎
字典
d = {key1 : value1, key2 : value2, key3 : value3 }
鍵必須是唯一的,但值則不必。
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字。

修改字典
向字典添加新內容的方法是增加新的鍵/值對
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 更新 Age
tinydict['School'] = "菜鳥教程" # 添加信息
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
#tinydict['Age']: 8
#tinydict['School']: 菜鳥教程
刪除字典元素
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 刪除鍵 'Name'
tinydict.clear() # 清空字典
del tinydict # 刪除字典
字典鍵的特性
1)不允許同一個鍵出現兩次。創(chuàng)建時如果同一個鍵被賦值兩次,后一個值會被記住;
2)鍵必須不可變,所以可以用數字,字符串或元組充當,而用列表就不行
字典內置函數&方法
內置函數
1 len(dict):計算字典元素個數,即鍵的總數。
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
len(tinydict)
3
2 str(dict):輸出字典,可以打印的字符串表示。
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
str(tinydict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
3 type(variable)
返回輸入的變量類型,如果變量是字典就返回字典類型。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> type(tinydict)
<class 'dict'>
內置方法
1 dict.clear():刪除字典內所有元素
2 dict.copy():返回一個字典的淺復制
3 dict.fromkeys():創(chuàng)建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
4 dict.get(key, default=None):返回指定鍵的值,如果鍵不在字典中返回 default 設置的默認值
5 key in dict:如果鍵在字典dict里返回true,否則返回false
6 dict.items():以列表返回一個視圖對象
7 dict.keys():返回一個視圖對象
8 dict.setdefault(key, default=None):和get()類似, 但如果鍵不存在于字典中,將會添加鍵并將值設為default
9 dict.update(dict2):把字典dict2的鍵/值對更新到dict里
10 dict.values():返回一個視圖對象
11 pop(key[,default]):刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
12 popitem():隨機返回并刪除字典中的最后一對鍵和值
集合
集合
可以使用大括號 { } 或者 set() 函數創(chuàng)建集合,注意:創(chuàng)建一個空集合必須用 set() 而不是 { },因為 { } 是用來創(chuàng)建一個空字典。
parame = {value01,value02,…}或者 set(value)
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 這里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判斷元素是否在集合內
True
>>> 'crabgrass' in basket
False
>>> # 下面展示兩個集合間的運算.
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b # 不同時包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}
集合的基本操作
1、添加元素
s.add(x)#若元素已存在,則不做任何操作
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}
s.update(x)#可以添加元素,且參數可以是列表,元組,字典等
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
2、移除元素
s.remove(x)
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")# 不存在會發(fā)生錯誤
>>> print(thisset)
{'Google', 'Runoob'}
s.discard( x )
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook") # 不存在不會發(fā)生錯誤
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}
s.pop()
#set 集合的 pop 方法會對集合進行無序的排列,然后將這個無序排列集合的左面第一個元素進行刪除。
3、計算集合元素個數
len(s)
4、清空集合
s.clear()
5、判斷元素是否在集合中存在
x in s
判斷元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> "Runoob" in thisset
集合內置方法完整列表
1、add() 為集合添加元素
2、clear() 移除集合中的所有元素
3、copy() 拷貝一個集合
4、difference() 返回多個集合的差集
5、difference_update() 移除集合中的元素,該元素在指定的集合也存在。
6、discard() 刪除集合中指定的元素
7、intersection() 返回集合的交集
8、intersection_update() 返回集合的交集。
9、isdisjoint() 判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。
10、issubset() 判斷指定集合是否為該方法參數集合的子集。
11、issuperset() 判斷該方法的參數集合是否為指定集合的子集
12、pop() 隨機移除元素
13、remove() 移除指定元素
14、symmetric_difference() 返回兩個集合中不重復的元素集合。
15、symmetric_difference_update() 移除當前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當前集合中。
16、union() 返回兩個集合的并集
17、update() 給集合添加元素
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Python使用pathlib庫實現優(yōu)雅的處理路徑
如果你需要在 Python 里進行文件處理,那么標準庫中的os和os.path兄弟倆一定是你無法避開的兩個模塊,本文主要來和大家聊聊如何使用pathlib庫實現優(yōu)雅的處理路徑,感興趣的可以了解下2023-12-12
Pycharm Terminal 與Project interpreter 安裝
本文主要介紹了Pycharm Terminal 與Project interpreter 安裝包不同步問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02

