程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python知識點總結(三):字典

編輯:Python

目錄

      • 字典
        • 1. 訪問字典中的值
        • 2. 添加鍵值對
        • 3. 修改鍵值對的值
        • 4. 刪除鍵值對
        • 5. 由類似對象組成的字典
        • 6. 遍歷所有的鍵值對 items()
        • 7. 遍歷字典中的所有鍵 keys()
        • 8. 按順序遍歷字典中的所有鍵
        • 9. 遍歷字典中的所有值 values()
        • 10. 字典列表
        • 11. 在字典中存儲列表
        • 12. 在字典中存儲字典

字典

字典可存儲的信息量幾乎不受限制,理解字典後,你就能夠更准確地為各種真實物體建模。可以創建一個表示人的字典,想在其中存儲多少信息就存儲多少信息:姓名、年齡、地址、職業以及要描述的任何方面。

在 Python 中,字典是一系列鍵值對。每個鍵都與一個值相關聯,你可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表乃至字典。事實上,可將任何 Python 對象用作字典中的值。

#簡單例子
alien_0 = {
'color': 'green', 'points': 5} #字典用放在花括號{}中的一系列鍵—值對表示
#在這個字典中,字符串'color' 是一個鍵,與之相關聯的值為'green'
print(alien_0['color'])
print(alien_0['points'])

1. 訪問字典中的值

alien_0 = {
'color': 'green', 'points': 5}
#要獲取與鍵相關聯的值,可依次指定字典名和放在方括號內的鍵
print(alien_0['color']) #返回green 

2. 添加鍵值對

字典是一種動態結構,可隨時在其中添加鍵—值對。要添加鍵—值對,可依次指定字典名、用方括號括起的鍵和相關聯的值。

alien_0 = {
'color': 'green', 'points': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)

注意:鍵值對的排列順序與添加順序不同。Python 不關心鍵值對的添加順序,而只關心鍵和值之間的關聯關系。注意:鍵值對的排列順序與添加順序不同。Python 不關心鍵值對的添加順序,而只關心鍵和值之間的關聯關系。

3. 修改鍵值對的值

alien_0 = {
'color': 'green'}
alien_0['color'] = 'red' #改成紅色
print("The alien is now " + alien_0['color'] + ".")

4. 刪除鍵值對

對於字典中不再需要的信息,可使用 del 語句將相應的鍵值對徹底刪除。使用 del 語句時,必須指定字典名和要刪除的鍵。

alien_0 = {
'color': 'green', 'points': 5}
del alien_0['color']
print(alien_0)

5. 由類似對象組成的字典

favorite_languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("Sarah's favorite language is " + favorite_languages['sarah'].title() + ".")

6. 遍歷所有的鍵值對 items()

languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for k,v in languages.items():
print('\nKey:' + k)
print('Value:' + v)


注意:遍歷字典時,鍵值對的返回順序也與存儲順序不同。

7. 遍歷字典中的所有鍵 keys()

languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for k in languages.keys():
#for k in languages: #結果一樣
print(k.title())

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

字典總是明確地記錄鍵和值之間的關聯關系,但獲取字典的元素時,獲取順序是不可預測的。可使用函數 sorted() 來獲得按特定順序排列的鍵列表的副本。

languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for k in sorted(languages):
print(k.title())

9. 遍歷字典中的所有值 values()

languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for v in languages.values():
print(v.title())

這種做法提取字典中所有的值,而沒有考慮是否重復。
為剔除重復項,可使用集合(set)。集合類似於列表,但每個元素都必須是獨一無二的。

languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for v in set(languages.values()):
print(v.title())

將一系列字典存儲在列表中,或將列表作為值存儲在字典中,這稱為嵌套。

10. 字典列表

alien_0 = {
'color': 'green', 'points': 5}
alien_1 = {
'color': 'yellow', 'points': 10}
alien_2 = {
'color': 'red', 'points': 15} #創建三個字典
aliens = [alien_0, alien_1, alien_2] #字典組成列表
for alien in aliens:
print(alien)

11. 在字典中存儲列表

favorite_languages = {

'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_languages.items():
print("\n" + name.title() + "'s favorite languages are:")
for language in languages:
print("\t" + language.title())


注意:列表和字典的嵌套層級不應太多。如果嵌套層級比前面的示例多得多,很可能有更簡單的解決問題的方案。

12. 在字典中存儲字典

users = {

'aeinstein': {

'first': 'albert', #名 
'last': 'einstein', #姓 
'location': 'princeton', #地址 
},
'mcurie': {

'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for username, user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved