Python3中如何實現dict.keys()的功能?
01-02
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
而且已經排好序了
推薦閱讀: