python 字典

'''

字典,是“鍵值對”的無序可變序列,字典中的每個元素都是一對“鍵值對”,包含:“鍵對象”

和“值對象”,可以通過“鍵對象”實現快速獲取、刪除、更新對象的“值對象”。

字典中通過“鍵對象”找到相應的“值對象”,列表中通過“下標數字”找到對象,鍵

是任意的不可變數據,比如整數、浮點數、字符串、元組,但是列表、字典、集合這些對象可變

不能作為“鍵”,並且“鍵”不可重複。

字典的定義方式:a={"name":"sj","age":36,"job":"teacher"}

'''

#一、字典的創建

#1、通過{}大括號,dict()來創建

a={"name":"sj","age":36,"job":"teacher"}

print(a)

b=dict(name="sj",age=36,job="teacher") #利用元組

print(b)

c=dict([("name","age"),("sj","36")]) #利用列表

print(c)

d={} #空字典

e=dict() #空字典

#2、通過zip()創建字典對象

a=['name','age','job']

b=['sj','36','teacher']

c=dict(zip(a,b))

print(c)

#3、通過fromkeys創建值為空的字典

a=dict.fromkeys(['name','age','job']) #fromkeys 元素為列表

print(a)

#二、字典元素的訪問

a={"name":"sj","age":36,"job":"teacher"}

#1、通過[鍵]獲得值,若[鍵]不存在,則報錯

print(a["name"])

#print(a["sex"]),則報錯,因為在a字典中沒有“sex”這個鍵

#2、通過get()方法獲得值,推薦使用,優點是指定鍵不存在,返回None,頁可以指定鍵不存在時返回默認的對象

print(a.get("name"))

print(a.get("sex","男生"))

#3、列出所有鍵值對,items()

print(a.items())

#4、列出所有鍵,所有值 keys()、values()

print(a.keys())

print(a.values())

#5、len()返回鍵值對的個數

print(len(a))

#6、檢測一個鍵是否在字典中 in

print("name" in a) #返回布爾值

#三、字典元素的添加、修改、刪除

#1、新增鍵值對,如果鍵已經存在,則覆蓋之前的鍵值對,如不存在,則新增

a={"name":"sj","age":36,"job":"teacher"}

a["address"]="徐州" #新增一個鍵值對

print(a)

a["age"]=18 #覆蓋之前的鍵值對

print(a)

#2、使用update(),講新字典中所有鍵值對全部添加到舊字典對象上,如鍵有重複直接覆蓋

a={"name":"sj","age":36,"job":"teacher"}

b={"sex":"男","age":"18"}

a.update(b)

print(a)

#3、字典元素的刪除 del(指定鍵值對)和clear()(全部刪除)、pop()刪除指定鍵值對,並將刪除的值賦給新對象

a={"name":"sj","age":36,"job":"teacher"}

del(a["name"]) #刪除鍵值對name:sj

print(a)

a.clear()

print(a)

a={"name":"sj","age":36,"job":"teacher"}

b=a.pop('age')

print(a)

print(b)

#4、popitem(),隨機刪除和返回該鍵值對

'''

字典是無序可變序列,因此沒有第一和最後一個元素的概念,popitem()彈出隨機的項,若想

一個一個的移除並處理,這個方法非常有效,因為不用首先獲得鍵的列表

'''

a={"name":"sj","age":36,"job":"teacher"}

a.popitem() #隨機刪除一個鍵值對

print(a)

#四、序列解包

'''

序列解包可以用於元組、列表、字典,可以讓我們方便的對多個變量賦值

序列解包用於字典時,默認是對鍵進行操作,如果需要對鍵值對操作,則需要使用items()

如果需要對值操作,則需要使用values()

'''

a,b,c=1,2,3 #數字解包

(d,e,f)=(4,5,6) #元組解包

[g,h,i]=[7,8,9] #列表解包

print(a)

print(b)

print(c)

print(d)

print(e)

print(f)

print(g)

print(h)

print(i)

a={"name":"sj","age":36,"job":"teacher"}

x,y,z=a

print(x) #x為name,默認對鍵的操作

print(y) #y為age

print(z) #z為job

x,y,z=a.items()

print(x) #對鍵值對操作

print(y)

print(z)

x,y,z=a.values()

print(x) #對值對操作

print(y)

print(z)

#五、複雜表格數據存儲,並實現訪問

'''

姓名 年齡 薪資 城市

張三 25 10000 徐州

李四 27 12000 上海

王五 30 15000 深圳

'''

r1={"name":"張三","age":"25","salary":"10000","city":"徐州"}

r2={"name":"李四","age":"27","salary":"12000","city":"上海"}

r3={"name":"王五","age":"30","salary":"15000","city":"深圳"}

tb=[r1,r2,r3] #製表

print(tb)

print(tb[1].get("salary"))#獲得第二行salary

for x in range(len(tb)): #for語句結束要帶冒號

print(tb[x].get("salary"))#獲得所有人的slary

for x in range(len(tb)):

print(tb[x].get("name"),tb[x].get("age"),tb[x].get("salary"),tb[x].get("city"),)


分享到:


相關文章: