Python3中如何實現dict.keys()的功能?

python2中dict.keys()能按value的順序返回key,python3中被取消,如何優雅地替代?


Python3的keys(), values(), items()返回的都是迭代器,如果需要像Python2一樣返回列表,只要傳給list就行了:

keys = list(mydict.keys())

如果想要同時獲得keys和values,永遠應當使用items

items = list(mydict.items())

可以再將得到的元組序列拆成keys和values:

keys = [k for k,v in items]
values = [v for k,v in items]

或者用zip:

keys, values = tuple(zip(*items))

Python 3的zip同樣返回迭代器,所以也需要在前面加上tuple或者list



我也發現了這個問題,經過試驗,可以用sorted()弄一下,前面那個討厭的dict_keys就沒了,可以直接用下標訪問了。

dct = {"c": "CoCo", "p": "peach", "m": "mango", "s": "strawberry"}
keys = sorted(dct.keys()) #keys = ["c", "m", "p", "s"]
print(keys[2]) # p

而且已經排好序了


推薦閱讀:

「左右」是如何定義的?何為左,何為右?

TAG:Python | 編程 | Python3x | 字典 | Python2x |