python字典與集合

字典

python中的字典是一種可變、無序的容器類型,可變即字典中的元素增刪改,無序即不能根據(jù)下標(biāo)(索引)來獲取其中的元素。字典中的每個(gè)元素都是由 鍵:值 的形式,一個(gè)字典中的鍵必須是由不可變?cè)貥?gòu)成,且不能重復(fù),值可以是任意類型。

字典方法:

方法 描述
radiansdict.clear() 刪除字典內(nèi)所有元素
radiansdict.copy() 返回一個(gè)字典的淺復(fù)制
radiansdict.fromkeys() 創(chuàng)建一個(gè)新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對(duì)應(yīng)的初始值
radiansdict.get(key, default=None) 返回指定鍵的值,如果值不在字典中返回default值
radiansdict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組
radiansdict.keys() 返回一個(gè)迭代器,可以使用 list() 來轉(zhuǎn)換為列表
radiansdict.setdefault(key, default=None) 和get()類似, 但如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為default
radiansdict.update(dict2) 把字典dict2的鍵/值對(duì)更新到dict里
radiansdict.values() 返回一個(gè)迭代器,可以使用 list() 來轉(zhuǎn)換為列表
dict.pop(key[,default]) 刪除字典給定鍵 key 所對(duì)應(yīng)的值,返回值為被刪除的值。key值必須給出。 否則,返回default值
dict.popitem() 隨機(jī)返回并刪除字典中的一對(duì)鍵和值(一般刪除末尾對(duì))
dict1 = {"name":"lily","age":14} #創(chuàng)建一個(gè)字典
list1 = ["score","money"]
print("score" in dict1) #成員測(cè)試,對(duì)字典進(jìn)行的成員測(cè)試是對(duì)字典鍵的檢測(cè)
dict2 = dict1.copy() #淺復(fù)制,實(shí)際創(chuàng)建了一個(gè)新的字典,兩個(gè)字典的值相同
print(dict1 == dict2)
print(dict2 is dict1)
#dict.fromkeys(seq,[value])創(chuàng)建一個(gè)新的字典,以seq中的每個(gè)元素做鍵,vlaue做值,如果不傳入value,默認(rèn)None
dict3 = dict.fromkeys(list1,100)
print(dict3)
#dict.get(key,[value]) 獲取key的值,當(dāng)不傳入value時(shí)如果key不存在,返回None,當(dāng)傳入value時(shí)如果key不存在,返回value
print(dict1.get("age",20))
print(len(dict1)) #獲取dict1中元素個(gè)數(shù)
#dict.items() 將dict中的每一個(gè)鍵值對(duì)以元組(鍵,值)的形式返回一個(gè)列表
print(dict1.items())
#dict.keys() 將dict中的所有鍵返回一個(gè)列表
print(dict1.keys())
#dict.values() 將dict中的所有值返回一個(gè)列表
print(dict1.values())
#dict.pop(key[,default])|刪除字典給定鍵 key 所對(duì)應(yīng)的值,返回值為被刪除的值。key值必須給出。 否則,返回default值
print(dict1.pop("age"))
#dict.popitem()隨機(jī)返回并刪除字典中的一對(duì)鍵和值(一般刪除末尾對(duì))
print(dict2.popitem())
#dict.update(dict2)把字典dict2的鍵/值對(duì)更新到dict里
dict1.update(dict3)
print(dict1)
#dict.setdefault(key)  --> 添加鍵值對(duì),鍵是key,值是None
#dict.setdefault(key,value)  --> 添加鍵值對(duì),鍵是key,值是value
#dict:key存在的時(shí)候,對(duì)字典不會(huì)有任何操作(不會(huì)修改key對(duì)應(yīng)的值)
dict1.setdefault("age",23)
print(dict1)
#dict1[key]=value  當(dāng)key存在時(shí),改變對(duì)應(yīng)的值,當(dāng)key不存在時(shí),添加新的鍵值對(duì) key:value
dict1["gender"] = "男"
print(dict1)
#dict.clear() 清空字典
dict1.clear()
print(dict1)

執(zhí)行結(jié)果:
False
True
False
{'score': 100, 'money': 100}
14
2
dict_items([('name', 'lily'), ('age', 14)])
dict_keys(['name', 'age'])
dict_values(['lily', 14])
14
('age', 14)
{'name': 'lily', 'score': 100, 'money': 100}
{'name': 'lily', 'score': 100, 'money': 100, 'age': 23}
{'name': 'lily', 'score': 100, 'money': 100, 'age': 23, 'gender': '男'}
{}

集合

集合是可以同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù),可變的,無序的,且元素是唯一的。唯一是值不能有重復(fù)的元素,自動(dòng)去重,這一點(diǎn)經(jīng)常用來對(duì)序列元素去重。
集合中的元素只能是不可變的數(shù)據(jù)。

set1 = {1, 2, 3,2,3}
print(set1)
set2 = {}  # 這個(gè)是空的字典

# 2.集合的增刪改查
# a.查(獲取元素)
"""
集合不能單獨(dú)的獲取一個(gè)元素,也不能切片,只能通過for-in來遍歷
"""
for x in set1:
    print(x)

# b.增(添加元素)
"""
集合.add(元素) --> 在集合中添加一個(gè)元素
"""
set1 = {1, 2, 3}
set1.add(4)
print(set1)

"""
集合1.update(序列)  --> 將序列中的元素添加到集合1中
"""
set1.update({'a', 'b'})
print(set1)

set1.update('0987')
print(set1)

set1.update(['abc', 'aaa'])
print(set1)

set1.update({'name': 1, 'age': 18})   # 字典只添加key
print(set1)

# 3.刪(刪除元素)
"""
集合.remove(元素) --> 刪除指定的元素
"""
set1.remove(1)
print(set1)

# 4.改(集合不能改)

執(zhí)行結(jié)果:
{1, 2, 3}
1
2
3
{1, 2, 3, 4}
{'b', 1, 2, 3, 4, 'a'}
{1, 2, 3, 4, '0', 'a', '8', 'b', '9', '7'}
{1, 2, 3, 4, 'abc', '0', 'a', '8', 'b', 'aaa', '9', '7'}
{1, 2, 3, 4, 'abc', '0', 'name', 'age', 'a', '8', 'b', 'aaa', '9', '7'}
{2, 3, 4, 'abc', '0', 'name', 'age', 'a', '8', 'b', 'aaa', '9', '7'}

集合可以進(jìn)行數(shù)學(xué)集合運(yùn)算

# 集合相關(guān)的運(yùn)算: 是否包含,交集、并集、差集、補(bǔ)集
# 1.包含
"""
集合1 >= 集合2 ---> 判斷集合1之中是否包含集合2
集合2 <= 集合2 ---> 判斷集合2之中是否包含集合1
"""
set1 = {1, 2, 3, 4, 5, 10}
set2 = {3, 4, 1}
print(set1 >= set2)

# 2.交集 -> &
"""
& --> 求兩個(gè)集合公共的部分
"""
set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 10, 20}
print(set1 & set2)

# 3.求并集
"""
| --> 求兩個(gè)集合的和
"""
print(set1 | set2)

# 4.求差集
"""
集合1-集合2 --> 求集合1中除了集合2以外的部分
"""
print(set1 - set2)

# 5.求補(bǔ)集
"""
^ --> 求兩個(gè)集合除了公共部分以外的部分
"""
print(set1 ^ set2)

執(zhí)行結(jié)果
True
{1, 2, 3}
{1, 2, 3, 4, 5, 10, 20}
{4, 5}
{20, 4, 5, 10}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 反省自己:晚上看到大女兒玩手機(jī),小女兒玩電腦,姐妹兩都說好晚上讀背落下的學(xué)習(xí)內(nèi)容都沒實(shí)行。妹妹是作業(yè)寫完也不去讀英...
    延愛閱讀 155評(píng)論 2 2
  • 前幾天老媽給我打電話說想回老家住幾天,又說門口種的幾顆花椒熟了。我知道媽媽是又想家了,自從父親六年前突然走后我們不...
    菊子花開閱讀 207評(píng)論 0 0

友情鏈接更多精彩內(nèi)容