我想从2个列表数据创建地图数据。我有一个简单的例子如下。我想要做的是创建'new_map'数据,如下所示。如果它包含特定数据,则该值应为True。
all_s = ['s1', 's2', 's3', 's4']
data = ['s2', 's4']
new_map = {'s1': False, 's2': True, 's3': False, 's4': True}
有没有聪明的方法(比如lambda)来实现这个?我的python env是3.X. 当然,如果我简单地使用for-iter,我可以解决这个问题。但我想知道有更好的方法。
答案 0 :(得分:4)
这应该以pythonic方式快速有效地完成:
data_set = set(data)
new_map = {k: k in data_set for k in all_s}
答案 1 :(得分:2)
new_map = {i: i in data for i in all_s}
答案 2 :(得分:1)
我使用词典理解:
self.create()