我有两组数据 - 字典(data)和列表(list_1),两者长度不等。我想遍历两者并执行以下操作:
- 如果 list_1 中的项目与关键数据匹配,则将该值添加到第二个列表。
- 如果该项目不在字典中,请添加“NULL”
第三个列表的长度应与 list_1 相同
这里是示例代码:
a = ['dim','john','joey','tron','bob','wilt','kobe']
b = [1,2,3,4,5,6,7]
data = dict(zip(a,b))
list_1 = ['bob','sue','mike','willy','john','may','beth','wilt']
list_2 = []
for x in list_1:
for key,value in data.items():
if x in key:
list_2.append(key)
elif x not in key:
list_2.append("NULL")
结果将是
['NULL', 'NULL', 'NULL', 'NULL', 'bob', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'john', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'wilt', 'NULL']
是否可以使第三个列表显示如下?
['bob','NULL','NULL','NULL','john','NULL','NULL','wilt']
最佳答案
您可以通过简单地检查该值是否在字典的键中来完成此操作。
list_1 = ['bob','sue','mike','willy','john','may','beth','wilt']
list_2 = []
for x in list_1:
if x in data.keys():
list_2.append(x)
else:
list_2.append("NULL")
如果你想要花哨和简洁,你可以使用列表理解。
list_2 = [x if x in data.keys() else "NULL" for x in list_1]
关于python - 如何找到字典和列表之间的匹配项以从匹配项创建新列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55960089/