gpt4 book ai didi

python - 如何通过使用 for 循环添加现有列表来创建新列表

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

我想将一个嵌套列表中的单词与中间的单词“and”连接起来。例如:

l1 = [帕特里克、彼得、杰罗姆]、[丽莎、凯伦、爱丽丝]

l2 应该是:[Patrick 和 Lisa、Peter 和 Karen、Jerome 和 Alice]

无论嵌套列表中有 2,3 还是任何数量的列表,代码都不会产生影响。

我尝试遍历变量中的列表范围,然后将结果附加到新变量。但是,结果只是第一个组合或者结果在第二个组合之后结束。

def names(one):
newlist = []
x = 0
for y in range(len(one)):
newlist.append(one[x][y] + " and " + one[x+1][y])
x += 1
return newlist

['帕特里克和丽莎']

是我到现在为止得到的。我知道它与迭代有关,但由于我是 python 的新手,所以我被卡住了。

最佳答案

l1 似乎是两个元素的元组。使用以下内容:

l2 = []

for name_a, name_b in zip(l1[0], l1[1]):
l2.append(name_a + ' and ' + name_b)

如果您使用的是 Python 3.6+,则可以使用 f 字符串:

l2 = []

for name_a, name_b in zip(l1[0], l1[1]):
l2.append(f'{name_a} and {name_b}')

另请记住,您还可以使用列表推导式。

Python 3.6+

l2 = [f'{name_a} and {name_b}' for name_a, name_b in zip(l1[0], l1[1])]
l2 = [name_a + ' and ' + name_b for name_a, name_b in zip(l1[0], l1[1])]

注意:如果不允许使用zip,请使用range并使用索引符号,如下所示:

l2 = []

for i in range(len(l1[0])):
name_a = l1[0][i]
name_b = l1[1][i]
l2.append(name_a + ' and ' + name_b)

更新:根据之前的评论,您应该使用以下内容:

l2 = []

for i in range(len(l1[0])):
l2.append(' and '.join(e[i] for e in l1))

关于python - 如何通过使用 for 循环添加现有列表来创建新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58173167/

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