作用是以列表返回可遍歷的(key,value)的元組數(shù)組。
創(chuàng)新互聯(lián)建站專注于江南企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,成都商城網(wǎng)站開發(fā)。江南網(wǎng)站建設(shè)公司,為江南等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
python語法中,items用于字典,作用是以列表返回可遍歷的(key,value)的元組數(shù)組。
1.語法dict.items,在python中,字典、列表和元祖都是常常使用的代碼類型。而他們之間的聯(lián)系也很密切。例如字典items()函數(shù)以列表返回可遍歷的(鍵,值)元組數(shù)組,將字典中的鍵值對以元組存儲,并將眾多元組存在列表中。
添加鍵值對
首先定義一個空字典
dic={}
直接對字典中不存在的key進(jìn)行賦值來添加
dic['name']='zhangsan'
dic
{'name': 'zhangsan'}
如果key或value都是變量也可以用這種方法
key='age'
value=30
dic[key]=value
dic
{'age': 30. 'name': 'zhangsan'}
這里可以看到字典中的數(shù)據(jù)并不是按先后順序排列的,如果有興趣,可以搜一搜數(shù)據(jù)結(jié)構(gòu)中的——哈希表
從python3.7開始,字典按照插入順序,實(shí)現(xiàn)了有序。修改一個已存在的key的值,不影響順序,如果刪了一個key后再添加該key,該key會被添加至末尾。標(biāo)準(zhǔn)json庫的dump(s)/load(s)也是有序的
還可以用字典的setdefault方法
dic.setdefault('sex','male')
'male'
key='id'
value='001'
dic.setdefault(key,value)
'001'
dic
{'id': '001', 'age': 30. 'name': 'zhangsan', 'sex': 'male'}
1 遍歷key值my_dict = for key in my_dict: print("鍵是",key)2 遍歷value值my_dict = for value in my_dict.values(): print("值是",value)3 遍歷鍵值對 for kv in a.items(): # kv 是元組形式 print(kv) 在控制臺輸出的結(jié)果是# (a, 1)#(b, 2)#(c, 3)如果想了解更多
(1)遍歷key值
在使用上,for key in a和 for key in a.keys():完全等價。
(2)遍歷value值
(3)遍歷字典項(xiàng)
(4)遍歷字典健值
在使用上for key,value in a.items()與for (key,value) in a.items()完全等價
列表的遍歷
方法一:通過for循環(huán)
li = [i for i in range(10)]
for i in li:
print(i)
方法二:通過while循環(huán)
# 雖然for循環(huán)已經(jīng)很好用了,但是在有些情況下,使用while循環(huán)可以更靈活
# 只需要將判斷條件設(shè)置為小于列表長度,即可完成列表通過while循環(huán)的遍歷
li = [i for i in range(10)]
i = 0
while i len(li):
print(li[i])
i += 1
方法三:配合enumerate使用,同時獲取列表的索引
li = [i + 1 for i in range(10)]
# 此時,i為一個元組,元組的第一個元素為索引,第二個元素為原列表的元素
# 因此,在遍歷列表的同時,需要同時獲取坐標(biāo)的情況下,可以配合enumerate()一起使用
for i in enumerate(li):
print(i)
字典的遍歷
字典的遍歷和列表有一些不同,因?yàn)樽值溆墟I和值兩個關(guān)鍵部分。默認(rèn)的遍歷情況,是遍歷字典的鍵,當(dāng)然,可以通過字典的鍵取得值,也可以直接遍歷值,或者直接遍歷鍵和值。
方法一:直接使用for循環(huán)
直接使用for循環(huán)對一個字典進(jìn)行遍歷,默認(rèn)取得的是字典的鍵
dt = {i: i + 1 for i in range(10)}
for i in dt:
print("字典的鍵:", i) # 字典的鍵
print("字典的值:", dt[i]) # 字典的值
方法二:遍歷dict.keys()
這種方法與方法一的效果其實(shí)是一樣的,同樣是獲取字典的鍵
dt = {i: i + 1 for i in range(10)}
for i in dt.keys():
print("字典的鍵:", i) # 字典的鍵
print("字典的值:", dt[i]) # 字典的值
方法三:遍歷dict.values()
這種方法與方法一和二很不相同,因?yàn)樗猾@取了字典的值
dt = {i: i + 1 for i in range(10)}
# 這是很特殊的方法,因?yàn)樗鼪]有獲取字典的鍵
for i in dt.values():
print("字典的值:", i) # 此時i不再是字典的鍵,而是值
方法四:遍歷dict.items()
這種方法一般來說要更好,因?yàn)樗瑫r獲取到了字典的鍵和值,而且性能上要高于先獲取鍵,再通過鍵獲取對應(yīng)的值
dt = {i: i + 1 for i in range(10)}
for i in dt.items():
print("字典的鍵值對:", i)
print("字典的鍵:", i[0])
print("字典的值:", i[1])
總結(jié)
1,列表的遍歷比較簡單,除了配合enumerate()使用,可以同步獲取索引以外,并沒有特別值得糾結(jié)的。
2,字典的遍歷方法比較多,其中第四種是能適用于一切情況的,前兩種也可以適用于一切情況,但是如果你同時需要獲取鍵和值,性能不如第四種要好。第三種比較特別,除非你真的只需要字典的值,否則它在多數(shù)情況下是不能夠滿足需求的。