1. 程式人生 > 實用技巧 >題解 CF961G 【Partitions】

題解 CF961G 【Partitions】

字典

簡單的字典

字典與列表不同 列表使用的是【】而字典使用的是{} 並且在字典中有鍵-值的對應關係

使用字典

name={'first name':'shi hao','last name':'zhang'}

在字典中 鍵-值都需要用單引號引用 並且在鍵-值之間用冒號連線 不同的鍵值之間需要用逗號分隔開

訪問字典中的鍵-值

print(name['first name'])

在訪問字典時 print後跟字典的名稱 然後再用【】加單引號引出鍵的名稱 會自動找的當前鍵所對應的值 並將它輸出

新增鍵-值對

name={'first name':'shi hao','last name':'zhang'}
name['age']=20

輸入字典名 【】加鍵名 別忘了用單引號引起 然後再等於值就可

建立空字典

name={}

修改字典中的值

name={'first name':'shi hao','last name':'zhang','age':20}
name['age']=21

刪除鍵-值對

name={'first name':'shi hao','last name':'zhang','age':20}
del name['age']

遍歷字典

遍歷所有的鍵值

river={
'huang he':'china',
'nile':'egypt',
'chang jiang':'china',
}
for rivers,country in river.items():
print('The '+rivers.title()+'runs through'+country.title())

使用一個for迴圈 並宣告兩個變數river country分別來儲存鍵 值 並使用items方法(以列表的形式返回遍歷的鍵 值) 注意:遍歷字典時 鍵值對的返回順序也與儲存順序不同

只遍歷字典中所有的鍵

river={
'huang he':'china',
'nile':'egypt',
'chang jiang':'china',
}
for rivers in river.keys():
print(rivers.title())

使用了keys()方法 此時只會輸出字典中所有的鍵

按順序遍歷字典中所有的鍵

river={
'huang he':'china',
'nile':'egypt',
'chang jiang':'china',
}
for rivers in sorted(river.keys()):
print(rivers.title())

這裡使用了sorted方法 (按照字母順序排序)

遍歷字典中所有的值

river={
'huang he':'china',
'nile':'egypt',
'chang jiang':'china',
}
for country in river.values():
print(country.title())

使用了values()方法 此時只會遍歷字典中的值

當字典中的值可能存在多個重複 我們有時輸出需要刪除重複的值 則可以使用集合set(集合類似於列表 但是每個元素必須獨一無二)

river={
'huang he':'china',
'nile':'egypt',
'chang jiang':'china',
}
for countrys in set(river.values()):
print(countrys.title())

使用了set 並且只是對字典的值進行輸出 相同的則只會輸出一個

巢狀

字典列表

alien_0={'color':'green','point':5}
alien_1={'color':'green','point':5}
alien_2={'color':'green','point':5}
aliens=[alien_0,alien_1,alien_2]
print(aliens)

在字典中儲存列表

places={
'zhang':['bei jing','la sa'],
'jiang':['xi an','wu han'],
}
for m,n in places.items():
print(m)
for p in n:
print(p)
結果:
zhang
bei jing
la sa
jiang
xi an
wu han
bei jing

列表的部位是值 你首先用n來儲存字典中的值 然後再有p來一個個迴圈輸出

字典中儲存字典

cities={
'bei jing':{
'coun':'china',
'population':'600w',
'fact':'歷史',
},
'new yourk':{
'coun':'am',
'population':'200w',
'fact':'2b',
},
}

不要忘了每對鍵值後面加逗號