Python:使用2个列表创建地图

时间:2016-09-09 01:57:56

标签: python python-3.x

我想从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,我可以解决这个问题。但我想知道有更好的方法。

3 个答案:

答案 0 :(得分:4)

这应该以pythonic方式快速有效地完成:

 data_set = set(data)
 new_map = {k: k in data_set for k in all_s}

答案 1 :(得分:2)

尝试dict comprehension

new_map = {i: i in data for i in all_s}

答案 2 :(得分:1)

我使用词典理解:

self.create()