我有类似这样的字典,其中的值本身就是一个列表。
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_dict]
预期输出:
[7760, 340, 2305, 1258, 1738, 8294, 712, 8503, 1209, 2372]
当前方法:
[*map(lambda x:my_dict[x][0], my_key_order)]
还有没有其他更优雅的方法可以更快地执行操作(也许不使用lambda)?
答案 0 :(得分:2)
我认为列表理解看起来更简洁一些:
[my_dict[x][0] for x in my_key_order]
这只会遍历您的订单并从字典中获取该项目,并使用索引将其拆包