gpt4 book ai didi

python - 如何合并两个列表

转载 作者:行者123 更新时间:2023-11-28 21:52:25 25 4
gpt4 key购买 nike

我可以用两种方式编写追加行。两者都不会产生预期的结果。有没有办法将其包含在一行中?

选项 1:

row.append(x[1] for x in emails if x[0] == row[1]) 

产量:

[['project1', 'email1', <generator object <genexpr> at 0x0227D670>], ['project1', 'email2', <generator object <genexpr> at 0x022EB8A0>]]

选项 2:

row.append([x[1] for x in emails if x[0] == row[1]]) 

产量:

[['project1', 'email1', ['john@gmail.com']], ['project1', 'email2', ['bill@gmail.com']]]

期望的结果:

[['project1', 'email1', 'john@gmail.com'], ['project1', 'email2', 'bill@gmail.com']]

代码:

emails = [['email1','john@gmail.com'],['email2','bill@gmail.com']]

projects = [['project1', 'email1'], ['project1', 'email2']]

for row in projects:
row.append(x[1] for x in emails if x[0] == row[1])
print projects

最佳答案

在您现有的代码中,替换这一行:

row.append(x[1] for x in emails if x[0] == row[1])

与:

row.extend(x[1] for x in emails if x[0] == row[1])

在线解决方案

或者,消除循环并将代码全部压缩到一行中:

>>> projects = [  row + [x[1] for x in emails if x[0] == row[1]] for row in projects ]
>>> print projects
[['project1', 'email1', 'john@gmail.com'], ['project1', 'email2', 'bill@gmail.com']]

关于python - 如何合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289181/

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