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

修改字典
向字典添加新內(nèi)容的方法是增加新的鍵/值對(duì)
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)不允許同一個(gè)鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會(huì)被記??;
2)鍵必須不可變,所以可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行
字典內(nèi)置函數(shù)&方法
內(nèi)置函數(shù)
1 len(dict):計(jì)算字典元素個(gè)數(shù),即鍵的總數(shù)。
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'>
內(nèi)置方法
1 dict.clear():刪除字典內(nèi)所有元素
2 dict.copy():返回一個(gè)字典的淺復(fù)制
3 dict.fromkeys():創(chuàng)建一個(gè)新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對(duì)應(yīng)的初始值
4 dict.get(key, default=None):返回指定鍵的值,如果鍵不在字典中返回 default 設(shè)置的默認(rèn)值
5 key in dict:如果鍵在字典dict里返回true,否則返回false
6 dict.items():以列表返回一個(gè)視圖對(duì)象
7 dict.keys():返回一個(gè)視圖對(duì)象
8 dict.setdefault(key, default=None):和get()類似, 但如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為default
9 dict.update(dict2):把字典dict2的鍵/值對(duì)更新到dict里
10 dict.values():返回一個(gè)視圖對(duì)象
11 pop(key[,default]):刪除字典給定鍵 key 所對(duì)應(yīng)的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
12 popitem():隨機(jī)返回并刪除字典中的最后一對(duì)鍵和值
集合
集合
可以使用大括號(hào) { } 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來(lái)創(chuàng)建一個(gè)空字典。
parame = {value01,value02,…}或者 set(value)
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 這里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判斷元素是否在集合內(nèi)
True
>>> 'crabgrass' in basket
False
>>> # 下面展示兩個(gè)集合間的運(yùn)算.
>>> 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 # 不同時(shí)包含于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)#可以添加元素,且參數(shù)可以是列表,元組,字典等
>>> 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")# 不存在會(huì)發(fā)生錯(cuò)誤
>>> print(thisset)
{'Google', 'Runoob'}
s.discard( x )
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook") # 不存在不會(huì)發(fā)生錯(cuò)誤
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}
s.pop()
#set 集合的 pop 方法會(huì)對(duì)集合進(jìn)行無(wú)序的排列,然后將這個(gè)無(wú)序排列集合的左面第一個(gè)元素進(jìn)行刪除。
3、計(jì)算集合元素個(gè)數(shù)
len(s)
4、清空集合
s.clear()
5、判斷元素是否在集合中存在
x in s
判斷元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> "Runoob" in thisset
集合內(nèi)置方法完整列表
1、add() 為集合添加元素
2、clear() 移除集合中的所有元素
3、copy() 拷貝一個(gè)集合
4、difference() 返回多個(gè)集合的差集
5、difference_update() 移除集合中的元素,該元素在指定的集合也存在。
6、discard() 刪除集合中指定的元素
7、intersection() 返回集合的交集
8、intersection_update() 返回集合的交集。
9、isdisjoint() 判斷兩個(gè)集合是否包含相同的元素,如果沒(méi)有返回 True,否則返回 False。
10、issubset() 判斷指定集合是否為該方法參數(shù)集合的子集。
11、issuperset() 判斷該方法的參數(shù)集合是否為指定集合的子集
12、pop() 隨機(jī)移除元素
13、remove() 移除指定元素
14、symmetric_difference() 返回兩個(gè)集合中不重復(fù)的元素集合。
15、symmetric_difference_update() 移除當(dāng)前集合中在另外一個(gè)指定集合相同的元素,并將另外一個(gè)指定集合中不同的元素插入到當(dāng)前集合中。
16、union() 返回兩個(gè)集合的并集
17、update() 給集合添加元素
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python使用pathlib庫(kù)實(shí)現(xiàn)優(yōu)雅的處理路徑
如果你需要在 Python 里進(jìn)行文件處理,那么標(biāo)準(zhǔn)庫(kù)中的os和os.path兄弟倆一定是你無(wú)法避開的兩個(gè)模塊,本文主要來(lái)和大家聊聊如何使用pathlib庫(kù)實(shí)現(xiàn)優(yōu)雅的處理路徑,感興趣的可以了解下2023-12-12
python Django框架快速入門教程(后臺(tái)管理)
Django 是一個(gè)開放源代碼的 Web 應(yīng)用框架,由 Python 寫成,今天通過(guò)本文給大家介紹python Django框架快速入門教程,適用后臺(tái)管理,感興趣的朋友跟隨小編一起看看吧2021-07-07
Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能實(shí)例
百度AI功能還是很強(qiáng)大的,百度AI開放平臺(tái)真的是測(cè)試接口的天堂,免費(fèi)接口很多,當(dāng)然有量的限制,但個(gè)人使用是完全夠用的,下面這篇文章主要給大家介紹了關(guān)于Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能的相關(guān)資料,需要的朋友可以參考下2021-09-09
Pycharm Terminal 與Project interpreter 安裝
本文主要介紹了Pycharm Terminal 與Project interpreter 安裝包不同步問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
python PyQt5事件機(jī)制和定時(shí)器原理分析及用法詳解
PyQt為事件處理提供了兩種機(jī)制:高級(jí)的信號(hào)與槽機(jī)制,以及低級(jí)的事件處理機(jī)制,在基于PyQt5的應(yīng)用程序開發(fā)過(guò)程中經(jīng)常會(huì)遇到一些需要循環(huán)執(zhí)行的任務(wù),即定時(shí)多長(zhǎng)時(shí)間任務(wù)循環(huán)一次,本文給大家介紹了python PyQt5事件機(jī)制和定時(shí)器原理和用法,需要的朋友可以參考下2024-07-07

