gpt4 book ai didi

Python:比较列表和元组列表

转载 作者:行者123 更新时间:2023-11-28 17:38:37 24 4
gpt4 key购买 nike

我有一个如下所示的列表:

z = [('Anna Smith', 'IN1'), ('John', 'IN2'), ('Matt Andrew', 'IN3'), ('Smith', 'IN4')]

还有另一个列表:

c = ['Anna Smith', 'John', 'Anna', 'Smith']

我想要下面的输出:

o = ['Anna Smith|IN1', 'John|IN2', 'Smith|IN4']

我试过下面的代码:

for s, s_inc in z:
for word in c:
if word.lower() in s.lower():
o.append("%s|%s"%(word, s_inc))

但是上面给出了输出:

o = ['Anna Smith|IN1', 'Anna|IN1', 'Smith|IN1', 'John|IN2', 'Smith|IN4']

我怎样才能得到我想要的东西?

最佳答案

列表理解是解决此类过滤/列表操作问题的一种优雅方法。

理解由三部分组成:

-首先在a+'|'+b中构造结果

-其次,a和b被分配给列表z中每个二元组的第一个和第二个元素

-第三,我们以a必须是列表c的成员为条件进行过滤

print [a+'|'+b for a,b in z if a in c]

# Prints ['Anna Smith|IN1', 'John|IN2', 'Smith|IN4']

关于Python:比较列表和元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27568211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com