1. 程式人生 > >字典三種遍歷方法和排序方法

字典三種遍歷方法和排序方法

字典遍歷方法挺多,我總結了以下比較常見的三種:
1、用dict.keys()遍歷
用dict.keys()方法會返回一個型別為dict_keys的序列型別,裡面有字典的key,然後遍歷即可

2、有dict.values()遍歷
類似的,會返回字典的所有value值組成的一個序列,型別為dict_values,

3、用dict.items()遍歷
會返回一個由key和value組成的一個個成對資料,通常同時獲得二者:

for key,value in dict.tems();
		print(key,value)

4、直接遍歷key
這個方法不太常用,而且容易引起誤解。其實直接拿一個任意變數遍歷字典,其實預設就是遍歷他的key:
for x in a:
print(x)
1
3
5
前面三個比較清晰,容易理解記憶。

字典排序方法:
1、對字典key進行排序

		a={'a':1,'G':9,'c':6,'D':7}
		sorted(a.keys())
			['D','G','a','c']

2、對字典value進行排序

sorted(a.values())
		[1,6,7,9]

3、對key—value對進行排序,可以自己選擇根據key還是根據value值排序

	sorted(a.items(),key=lambda x:x[1],reverse=True)
			[('G':9),('D':7),('c':6),('a':1)]

其中x[1]表示根據元組中的第二個值,即value值進行排序,可以修改x[0],x[1],reverse=True/False來滿足不同的排序需求。注意其中lambda 後面的x就是指前面那個序列的元素,不管那個序列裡的元素是數字,字串,或者包含一對key-value的元組,他都照常取來,說白了x就是遍歷匿名函式前面的序列,把序列中的元素一個一個拿來做引數,再根據後面的的表示式(比如說是x,x**2, x[0]等)來比較、排序。(最後返回的不是表示式值,還是元素本身。)