python(字典)


字典

字典是通過{}來表示的,每一條數據都是一個鍵值對(key:value),每個元素之間使用逗號隔開,字典的在同一個字典中是唯一的(不能重復)

字典中的鍵:只能是不可變類型的數據,一般情況下都是使用字符串來作為字典的鍵(可以用數字,字符串或元組充當)

字典中的值:可以取任何數據類型

 

不可變類型的數據:數值(int,float,bool),字符串、元組

可變類型的:列表、字典、集合(有增刪查改的方法)

 

創建一個字典:

# 第一種:直接通過{}
dic = {"name": "msuen", "age": 18, 'gender': "男"}
print(dic)

# 第二種:使用內置函數dict(了解)
dic2 = dict([('name', 'msuen'), ('age', 18), ('gender', '男')])
print(dic2)

# 第三種:內置函數dict
dic3 = dict(name="musen",
age=18,
gender="男")
print(dic3)

 

 

 

訪問字典中的值

dic = {"age": 18, "gender": "","name": "python"}
res = dic["name"]
print(res)
print("dic['age']:",dic['age'])

 

 

修改字典中的值

dic = {"age": 18, "gender": "","name": "python"}
dic['age']= 19
print("dic['age']:",dic['age'])

 

 

刪除字典元素del方法

dic = {"age": 18, "gender": "","name": "python"}
del dic['age']       #刪除鍵
print(dic)
dic.clear()          #清空字典
print(dic)
del dic             #整個刪除后,后面輸出會報異常
print(dic)

 

內置函數:

序號 函數及描述 實例
1 len(dict)
計算字典元素個數,即鍵的總數。
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> len(dict) 3
2 str(dict)
輸出字典,可以打印的字符串表示。
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> str(dict) "{'Name': 'python', 'Class': 'First', 'Age': 18}"
3 type(variable)
返回輸入的變量類型,如果變量是字典就返回字典類型。
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> type(dict) <class 'dict'>

內置方法:

序號 函數及描述
1 radiansdict.clear()
刪除字典內所有元素
2 radiansdict.copy()
返回一個字典的淺復制
3 radiansdict.fromkeys()
創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
4 radiansdict.get(key, default=None)
返回指定鍵的值,如果鍵不在字典中返回 default 設置的默認值
5 key in dict
如果鍵在字典dict里返回true,否則返回false
6 radiansdict.items()
以列表返回一個視圖dict_items對象
7 radiansdict.keys()   
以列表返回一個視圖dict_keys對象
8 radiansdict.setdefault(key, default=None)
和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default
9 radiansdict.update(dict2)
把字典dict2的鍵/值對更新到dict里
10 radiansdict.values()
返回一個視圖對象
11 pop(key[,default])
刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
12 popitem()
隨機返回並刪除字典中的最后一對鍵和值。

 

 

補充:

1.字典的嵌套,字典是可以無限進行嵌套的

cities={
    '北京':{
        '朝陽':['國貿','CBD','天階','我愛我家','鏈接地產'],
        '海淀':['圓明園','蘇州街','中關村','北京大學'],
        '昌平':['沙河','南口','小湯山',],
        '懷柔':['桃花','梅花','大山'],
        '密雲':['密雲A','密雲B','密雲C']
    },
    '河北':{
        '石家庄':['石家庄A','石家庄B','石家庄C','石家庄D','石家庄E'],
        '張家口':['張家口A','張家口B','張家口C'],
        '承德':['承德A','承德B','承德C','承德D']
    }
}

for i in cities:
    print(i)

print("*******************")

for i in cities['北京']:
    print(i)

print("******************")

for i in cities['北京']['昌平']:
    print(i)

 

 

字典的運用:

例子:記錄學生的姓名和分數,並評級

students = {}
write = 1
while write:
    name = str(input("請輸入姓名:"))
    grade = int(input("請輸入分數:"))
    students[str(name)] = grade
    write = int(input("繼續輸入?\n 1/繼續 0/退出"))

print("name rate".center(20,'*'))

for key,value in students.items():
    if value >= 90:
        print("%s %s  A".center(20,'*')%(key,value))
    elif 90 >value>60:
        print("%s %s  B".center(20,'*')%(key,value))
    else:
        print("%s %s  C".center(20,'*')%(key,value))

 

 

字典列表(在列表中嵌套字典)

dict_0 = {'color': 'green', 'points': 5}
dict_1 = {'color': 'yellow', 'points': 10}
dict_2 = {'color': 'red', 'points': 15}
lists = [dict_0, dict_1, dict_2]
for dict in lists:
    print(dict)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM