活動安排問題
阿新 • • 發佈:2020-08-02
簡單的字典
字典與列表不同 列表使用的是【】而字典使用的是{} 並且在字典中有鍵-值的對應關係
使用字典
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',
},
}