gpt4 book ai didi

python - 配对两个列表中的项目

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:13 26 4
gpt4 key购买 nike

我有两个列表:

foo = ['learn.py', 'work.py','entertain.py','else']
bar = ['A.learn.py', '3.entertain.py','&work.py']

我想要的结果是

('learn.py', 'A.learn.py'), ('work.py', '&work.py'), 
('entertain.py','3.entertain.py'), ('else','else')]

下面是我的代码:

zoo = []
for j in bar:
for i in foo:
if i in j:
zoo.append((i,j))
In [3]: zoo
Out[3]: [('learn.py', 'A.learn.py'), ('work.py', '&work.py')]

或者,

zoo = []
for i in foo:
for j in bar:
if i in j:
zoo.append((i,j))
In [5]: zoo
Out[5]: [('learn.py', 'A.learn.py'), ('work.py', '&work.py')]

如何解决这样的问题?

最佳答案

如果我理解正确,bar 包含的元素本身包含来自 foo 的元素,对吗?请注意 entertain.py 未包含在您当前列表中的原因是因为它在 bar 中拼写错误。这应该有效:

foo = ['learn.py', 'work.py','entertain.py','else']
bar = ['A.learn.py', '3.entertain.py','&work.py']
zoo = []
for i in foo:
item = next((item for item in bar if i in item), None)
if item:
zoo.append((i, item))
else:
zoo.append((i,i))

关于python - 配对两个列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47342478/

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