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)建時如果同一個鍵被賦值兩次,后一個值會被記?。?/p>
2)鍵必須不可變,所以可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行
字典內(nèi)置函數(shù)&方法
內(nèi)置函數(shù)
1 len(dict)
:計(jì)算字典元素個數(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()
:隨機(jī)返回并刪除字典中的最后一對鍵和值
集合
集合
可以使用大括號 { } 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來創(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 >>> # 下面展示兩個集合間的運(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 # 不同時包含于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、計(jì)算集合元素個數(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()
隨機(jī)移除元素
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-12Python語音合成的項(xiàng)目實(shí)戰(zhàn)(PyQt5+pyttsx3)
本文主要介紹了Python語音合成的項(xiàng)目實(shí)戰(zhàn)(PyQt5+pyttsx3),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02在keras中獲取某一層上的feature map實(shí)例
今天小編就為大家分享一篇在keras中獲取某一層上的feature map實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python如何生成exe文件?用Pycharm一步步帶你學(xué)(超詳細(xì)、超貼心)
這篇文章主要給大家介紹了關(guān)于Python如何生成exe文件的相關(guān)資料,本文利用Pycharm一步步帶你學(xué),文中通過圖文以及實(shí)例代碼介紹的超詳細(xì)、超貼心,需要的朋友可以參考下2022-02-02使用Python進(jìn)行新浪微博的mid和url互相轉(zhuǎn)換實(shí)例(10進(jìn)制和62進(jìn)制互算)
我們在使用新浪微博API時,有時需要得到一個微博的url,但是如statuses/public_timeline等接口中取得的微博status的字段中并沒有包含2014-04-04python-docx修改已存在的Word文檔的表格的字體格式方法
今天小編就為大家分享一篇python-docx修改已存在的Word文檔的表格的字體格式方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Windows系統(tǒng)下cython_bbox庫的正確安裝步驟
Cython-bbox一般無法直接通過pip直接安裝,那么如何安裝呢?下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下cython_bbox庫的正確安裝步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05python pprint模塊中print()和pprint()兩者的區(qū)別
這篇文章主要介紹了python pprint模塊中print()和pprint()兩者的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02