我确定这是一项基本任务,答案是在google上的某个地方,但是我遇到的问题是我不知道这是什么“称呼”,所以我在尝试使用google时遇到了麻烦,几乎每个页面都展示了合并两个列表,这与我不相关。
我基本上有两个列表,我想将列表“ add”中的值添加到列表“ stuff”中每个单词的末尾并打印出来。
add = ['123', '12345']
stuff = ['Cars', 'Suits', 'Drinks']
所需的输出
Cars123 Cars12345 Suits123 Suits12345 Drinks123 Drinks12345
在此先感谢您,并对不好的研究再次表示歉意。
答案 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)