[英]applying a function over the values of dict in python
我有這樣的字典,其中的值本身就是一個列表。
import random
dict_size = 10
my_dict = dict(zip(np.random.randint(1000000,size=dict_size ),
map(lambda x: [random.randrange(10000)],range(dict_size ))))
my_dict
#
{187898: [1209],
189434: [8294],
201447: [1258],
317844: [7760],
330804: [2305],
679881: [1738],
754108: [8503],
758119: [712],
845631: [2372],
870357: [340]}
我想按一定的順序my_key_order
字典的值my_key_order
(我創建了該順序的一個示例,但是我已經有了實際的順序),並且將其展平。
my_key_order = [*my_dict]
預期產量:
[7760, 340, 2305, 1258, 1738, 8294, 712, 8503, 1209, 2372]
當前方法:
[*map(lambda x:my_dict[x][0], my_key_order)]
還有其他更優雅的方法來更快地執行操作(可能不使用lambda)嗎?
我認為列表理解看起來更簡潔一些:
[my_dict[x][0] for x in my_key_order]
這只會遍歷您的訂單並從字典中獲取該項目,並使用索引將其拆包
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.