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

修改字典
向字典添加新內(nèi)容的方法是增加新的鍵/值對
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)不允許同一個鍵出現(xiàn)兩次。創(chuàng)建時如果同一個鍵被賦值兩次,后一個值會被記??;
2)鍵必須不可變,所以可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行
字典內(nèi)置函數(shù)&方法
內(nèi)置函數(shù)
1 len(dict):計算字典元素個數(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():返回一個字典的淺復(fù)制
3 dict.fromkeys():創(chuàng)建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應(yīng)的初始值
4 dict.get(key, default=None):返回指定鍵的值,如果鍵不在字典中返回 default 設(shè)置的默認(rèn)值
5 key in dict:如果鍵在字典dict里返回true,否則返回false
6 dict.items():以列表返回一個視圖對象
7 dict.keys():返回一個視圖對象
8 dict.setdefault(key, default=None):和get()類似, 但如果鍵不存在于字典中,將會添加鍵并將值設(shè)為default
9 dict.update(dict2):把字典dict2的鍵/值對更新到dict里
10 dict.values():返回一個視圖對象
11 pop(key[,default]):刪除字典給定鍵 key 所對應(yīng)的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
12 popitem():隨機返回并刪除字典中的最后一對鍵和值
集合
集合
可以使用大括號 { } 或者 set() 函數(shù)創(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 # 快速判斷元素是否在集合內(nèi)
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)#可以添加元素,且參數(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")# 不存在會發(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 方法會對集合進(jìn)行無序的排列,然后將這個無序排列集合的左面第一個元素進(jìn)行刪除。
3、計算集合元素個數(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() 拷貝一個集合
4、difference() 返回多個集合的差集
5、difference_update() 移除集合中的元素,該元素在指定的集合也存在。
6、discard() 刪除集合中指定的元素
7、intersection() 返回集合的交集
8、intersection_update() 返回集合的交集。
9、isdisjoint() 判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。
10、issubset() 判斷指定集合是否為該方法參數(shù)集合的子集。
11、issuperset() 判斷該方法的參數(shù)集合是否為指定集合的子集
12、pop() 隨機移除元素
13、remove() 移除指定元素
14、symmetric_difference() 返回兩個集合中不重復(fù)的元素集合。
15、symmetric_difference_update() 移除當(dāng)前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當(dāng)前集合中。
16、union() 返回兩個集合的并集
17、update() 給集合添加元素
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python?subprocess執(zhí)行外部命令常用方法詳細(xì)舉例
這篇文章主要給大家介紹了關(guān)于python?subprocess執(zhí)行外部命令常用方法的相關(guān)資料,Python的subprocess模塊提供了一種在Python中調(diào)用外部命令的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
Python語音合成的項目實戰(zhàn)(PyQt5+pyttsx3)
本文主要介紹了Python語音合成的項目實戰(zhàn)(PyQt5+pyttsx3),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python如何生成exe文件?用Pycharm一步步帶你學(xué)(超詳細(xì)、超貼心)
這篇文章主要給大家介紹了關(guān)于Python如何生成exe文件的相關(guān)資料,本文利用Pycharm一步步帶你學(xué),文中通過圖文以及實例代碼介紹的超詳細(xì)、超貼心,需要的朋友可以參考下2022-02-02
使用Python進(jìn)行新浪微博的mid和url互相轉(zhuǎn)換實例(10進(jìn)制和62進(jìn)制互算)
我們在使用新浪微博API時,有時需要得到一個微博的url,但是如statuses/public_timeline等接口中取得的微博status的字段中并沒有包含2014-04-04
python-docx修改已存在的Word文檔的表格的字體格式方法
今天小編就為大家分享一篇python-docx修改已存在的Word文檔的表格的字體格式方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Windows系統(tǒng)下cython_bbox庫的正確安裝步驟
Cython-bbox一般無法直接通過pip直接安裝,那么如何安裝呢?下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下cython_bbox庫的正確安裝步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
python pprint模塊中print()和pprint()兩者的區(qū)別
這篇文章主要介紹了python pprint模塊中print()和pprint()兩者的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

