我正在用for循环遍历两个列表,我想将值追加到一个空列表,但是我无法使用append方法,因为它只接收一个参数。
list1 = ["Luis","Adolfo"]
list2 = [1,2,3,4,5,6,7,8,9]
lista3 = []
for x in list1:
for y in list2:
lista3.append(x,y)
我期待的是: 路易斯1 路易斯2 路易斯3等... 阿道夫1 阿道夫2 阿道夫3
答案 0 :(得分:1)
列表几乎可以包含任何内容。因此,这只是您要添加到循环中每个x,y对列表中的内容的问题。您可以创建一个内部列表来保存x和y:
from pprint import pprint
list1 = ["Luis","Adolfo"]
list2 = [1,2,3,4,5,6,7,8,9]
lista3 = []
for x in list1:
for y in list2:
xylist = [x,y]
lista3.append(xylist)
pprint(lista3)
结果:
[['Luis', 1],
['Luis', 2],
['Luis', 3],
['Luis', 4],
['Luis', 5],
['Luis', 6],
['Luis', 7],
['Luis', 8],
['Luis', 9],
['Adolfo', 1],
['Adolfo', 2],
['Adolfo', 3],
['Adolfo', 4],
['Adolfo', 5],
['Adolfo', 6],
['Adolfo', 7],
['Adolfo', 8],
['Adolfo', 9]]
或者您可以将x和y分别转换为字符串:
list1 = ["Luis", "Adolfo"]
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lista3 = []
for x in list1:
for y in list2:
str = "{} {}".format(x, y)
lista3.append(str)
for str in lista3:
print(str)
结果:
Luis 1
Luis 2
Luis 3
Luis 4
Luis 5
Luis 6
Luis 7
Luis 8
Luis 9
Adolfo 1
Adolfo 2
Adolfo 3
Adolfo 4
Adolfo 5
Adolfo 6
Adolfo 7
Adolfo 8
Adolfo 9
或者您可以将x和y分别添加到列表中:
list1 = ["Luis", "Adolfo"]
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lista3 = []
for x in list1:
for y in list2:
str = "{} {}".format(x, y)
lista3.append(x)
lista3.append(y)
print(lista3)
结果:
['Luis', 1, 'Luis', 2, 'Luis', 3, 'Luis', 4, 'Luis', 5, 'Luis', 6, 'Luis', 7, 'Luis', 8, 'Luis', 9, 'Adolfo', 1, 'Adolfo', 2, 'Adolfo', 3, 'Adolfo', 4, 'Adolfo', 5, 'Adolfo', 6, 'Adolfo', 7, 'Adolfo', 8, 'Adolfo', 9]
答案 1 :(得分:0)
我认为您需要:
list1 = ["Luis","Adolfo"]
list2 = [1,2,3,4,5,6,7,8,9]
lista3 = []
for x in list1:
for y in list2:
temp = x+" "+str(y)
lista3.append(temp)
print(lista3)
输出:
['Luis 1', 'Luis 2', 'Luis 3', 'Luis 4', 'Luis 5', 'Luis 6', 'Luis 7', 'Luis 8', 'Luis 9', 'Adolfo 1', 'Adolfo 2', 'Adolfo 3', 'Adolfo
4', 'Adolfo 5', 'Adolfo 6', 'Adolfo 7', 'Adolfo 8', 'Adolfo 9']
答案 2 :(得分:0)
您可以通过itertools.product将两个列表的元素进行所有可能的组合。
然后,您可以将列表中每个元组中的两个项目(可能的组合)连接到一个字符串上,并生成结果列表
from itertools import product
list1 = ["Luis","Adolfo"]
list2 = [1,2,3,4,5,6,7,8,9]
#Take all possible combinations using product, then join the two items in each tuple of the list to a string
lista3 = ['{} {}'.format(item[0], item[1]) for item in product(list1, list2)]
print(lista3)
输出将为
['Luis 1', 'Luis 2', 'Luis 3', 'Luis 4', 'Luis 5', 'Luis 6',
'Luis 7', 'Luis 8', 'Luis 9', 'Adolfo 1', 'Adolfo 2',
'Adolfo 3', 'Adolfo 4', 'Adolfo 5', 'Adolfo 6', 'Adolfo 7',
'Adolfo 8', 'Adolfo 9']
答案 3 :(得分:0)
您还使用 itertools 和列表理解
import itertools
list3 = list(itertools.product(list1, list2))
list3 = [i + ' ' + str(j) for i, j in list3]
结果:
['Luis 1', 'Luis 2', 'Luis 3', 'Luis 4', 'Luis 5', 'Luis 6', 'Luis 7', 'Luis 8', 'Luis 9', 'Adolfo 1', 'Adolfo 2', 'Adolfo 3', 'Adolfo 4', 'Adolfo 5', 'Adolfo 6', 'Adolfo 7', 'Adolfo 8', 'Adolfo 9']
答案 4 :(得分:0)
如果您使用的是Python>=3.6
,则应该尝试一下。
list1 = ["Luis","Adolfo"]
list2 = [1,2,3,4,5,6,7,8,9]
lista3 = []
for x in list1:
for y in list2:
lista3.append(f'{x} {y}')
print(lista3)
输出:
['Luis 1', 'Luis 2', 'Luis 3', 'Luis 4', 'Luis 5', 'Luis 6', 'Luis 7', 'Luis 8', 'Luis 9', 'Adolfo 1', 'Adolfo 2', 'Adolfo 3', 'Adolfo 4', 'Adolfo 5', 'Adolfo 6', 'Adolfo 7', 'Adolfo 8', 'Adolfo 9']