将列表中的值添加到Python中另一个列表中的值的末尾

时间:2019-11-20 21:08:22

标签: python-3.x list loops

我确定这是一项基本任务,答案是在google上的某个地方,但是我遇到的问题是我不知道这是什么“称呼”,所以我在尝试使用google时遇到了麻烦,几乎每个页面都展示了合并两个列表,这与我不相关。

我基本上有两个列表,我想将列表“ add”中的值添加到列表“ stuff”中每个单词的末尾并打印出来。

 add = ['123', '12345']
 stuff = ['Cars', 'Suits', 'Drinks']

所需的输出

    Cars123
    Cars12345
    Suits123
    Suits12345
    Drinks123
    Drinks12345

在此先感谢您,并对不好的研究再次表示歉意。

4 个答案:

答案 0 :(得分:1)

忽略我对评论中的组合所说的话!

>>> from itertools import product
>>> add = ['123', '12345']
>>> stuff = ['Cars', 'Suits', 'Drinks']
>>> for a, s in product(add, stuff):
...     a+s
...     
'123Cars'
'123Suits'
'123Drinks'
'12345Cars'
'12345Suits'
'12345Drinks'

附录:时间信息:该代码将嵌套循环与product中的itertools函数进行了比较,确实表明后者花了更多时间,比例约为2.64

import timeit

def approach_1():
    add = ['123', '12345']; stuff = ['Cars', 'Suits', 'Drinks']
    for a in add:
        for s in stuff:
            a+s

def approach_2():
    from itertools import product
    add = ['123', '12345']; stuff = ['Cars', 'Suits', 'Drinks']
    for a, s in product(add, stuff):
        a+s

t1 = timeit.timeit('approach_1()','from __main__ import approach_1', number=10000)
t2 = timeit.timeit('approach_2()','from __main__ import approach_2', number=10000)

print (t2/t1)

答案 1 :(得分:1)

有什么理由不能只使用嵌套循环吗?当然,这是最简单的解决方案。

for i in stuff:
    for j in add:
        print(i+j)

给予

Cars123
Cars12345
Suits123
Suits12345
Drinks123
Drinks12345

这假定两个列表都是字符串。

另一方面,像add这样的阴影函数名称通常对变量不是一个好主意,因此我将考虑对其进行更改。

答案 2 :(得分:0)

尝试一下:

for i in stuff:
    for j in add:
        print(i+j)

让我知道它是否有效

答案 3 :(得分:0)

为此,您需要两个for循环:

for stuff_element in stuff:
    for add_element in add:
         print(stuff_element+add_elements)