Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表的一个元素放在另一个列表的所有元素之间_Python_List - Fatal编程技术网

Python 将列表的一个元素放在另一个列表的所有元素之间

Python 将列表的一个元素放在另一个列表的所有元素之间,python,list,Python,List,我有两个不同长度的列表 list_a = ['pineapple', 'banana', 'mango'] list_b = ['tropical'] 我想把它们结合起来如下: final_list = ['pineapple', 'tropical', 'banana', 'tropical', 'mango', 'tropical'] 目标是最终得到一个数据帧,其中包括变量“fruits”和变量“origin”。我将通过创建一个只显示每秒钟一个元素的列表来实现这一点,然后再合并 我已

我有两个不同长度的列表

list_a = ['pineapple', 'banana', 'mango']
list_b = ['tropical']

我想把它们结合起来如下:

final_list = ['pineapple', 'tropical', 'banana', 'tropical', 'mango', 'tropical']

目标是最终得到一个数据帧,其中包括变量“fruits”和变量“origin”。我将通过创建一个只显示每秒钟一个元素的列表来实现这一点,然后再合并

我已经尝试过的:

fruit_origin = list_b[0]
desired_list = list(map(fruit_origin.__add__, list_a))

但这会像这样返回:

['pineappletropical', 'bananatropical', 'mangotropical']

提前谢谢

您可以使用,和嵌套的a-la:

您还可以使用@Matthias建议的方法展平这些线对:

from itertools import cycle, chain

[*chain(*zip(list_a, cycle(list_b)))]  # Python >= 3.5
# or more verbose
list(chain.from_iterable(zip(list_a, cycle(list_b))))

我不确定我是否正确理解了你的问题,但是如果你想映射原点,我假设它只是列表中的1个元素。您可以尝试以下方法:

desired_list = []
for fruit in list_a:
   desired_list.append(fruit)
   desired_list.append(list_b[0])


print(desired_list)
输出:

['pineapple', 'tropical', 'banana', 'tropical', 'mango', 'tropical']

组合
itertools.cycle
zip
itertools.chain

cycle(['tropical']) 
=> 'tropical', 'tropical', 'tropical', 'tropical', ...

zip(['pineapple', 'banana', 'mango'], ['tropical', 'tropical', 'tropical'])
=> [('pineapple', 'tropical'), ('banana', 'tropical'), ('mango', 'tropical')]

list(chain(*[('pineapple', 'tropical'), ('banana', 'tropical'), ('mango', 'tropical')]))
=> ['pineapple', 'tropical', 'banana', 'tropical', 'mango', 'tropical']
最终代码

result = list(chain(*zip(list_a, cycle(list_b))))

您可以将第二个列表与第一个列表中的项目数相乘,然后使用
zip
和如下方法:

['pineappletropical', 'bananatropical', 'mangotropical']

[邮政编码中x的项目(列表a,列表b*len(列表a))用于x中的项目]
输出[7]:[‘菠萝’、‘热带’、‘香蕉’、‘热带’、‘芒果’、‘热带’]

我认为在这种情况下,嵌套循环比单行程序更具可读性

list_a = ['pineapple', 'banana', 'mango']
list_b = ['tropical']

final_list = []
for a in list_a:
    final_list.append(a)
    for b in list_b:
        final_list.append(b)

我也有同样的想法,但我使用了
itertools.chain
list(chain(*zip(list_a,cycle(list_b)))
非常感谢你们两个-两个选项都有效!