合并两个python列表元素

时间:2021-03-15 23:31:23

标签: python list merge

我在 python 中有一个列表,我想合并它的每个第二个元素。 所以转这个:

['apple', 'red', 'banana', 'yellow', 'blueberry', 'blue']

进入这个:

['apple red', 'banana yellow', 'blueberry blue']

3 个答案:

答案 0 :(得分:2)

这里有一个简单的解决方案,假设您的数据是一个名为 l 的变量:

from itertools import zip_longest
[' '.join(filter(None, pair)) for pair in zip_longest(l[::2], l[1::2])]

使用 zip_longest 可确保奇数个值包含最后一个元素。

编辑:在 None 上添加了一个过滤器,以确保奇数元素没有附加空格。

答案 1 :(得分:1)

只需使用简单的列表理解即可。为此,将原始列表拆分为两个列表——一个从第 0 个元素开始,每隔一个元素遍历,第二个列表从第一个元素开始,类似地遍历每个第二个元素:

i = ['apple', 'red', 'banana', 'yellow', 'blueberry', 'blue']
b = [f'{a} {j}' for a, j in zip(i[::2], i[1::2])]

答案 2 :(得分:0)

你也可以这样做:

l = ['apple', 'red', 'banana', 'yellow', 'blueberry', 'blue']
l1 = iter(l)
l2 = iter(l)
next(l2, None)
res = []
for _ in zip(l1, l2):
  next(l1, None)
  res.append(' '.join(_))
  next(l2, None)
  
print(res)

只是为了使用 iter 和 next 的乐趣;-)

相关问题