2024-09-27 07:29:49 发布
网友
我有两个字符串列表:
letters = ['abc', 'def', 'ghi'] numbers = ['123', '456']
我想对它们进行for循环,以创建一个不是并行的字符串列表,因此zip()在这里不起作用
zip()
预期结果:
result = ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']
结果中元素的顺序是不相关的
有什么想法吗
谢谢你的回答!我简化了这个例子,所以上面所有的解决方案都很好地工作,但是在我正在处理的实际问题中,我想在这两个列表之间添加更多的代码行。我完成了嵌套这些循环:
for letter in letters: for number in numbers: print(letter+number) # many many lines of more code
无论如何,非常感谢你的帮助
取numbers和letters的乘积(而不是letters和numbers),然后按相反的顺序连接生成的元组
numbers
letters
>>> from itertools import product >>> [''.join([y, x]) for x, y in product(numbers, letters)] ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']
对于2元组,y + x就足够了,而不是使用''.join
y + x
''.join
两个列表的乘积就是所有可能的元组的集合,这些元组的创建顺序是从第一个列表中获取一个元素,从第二个列表中获取一个元素
>>> list(product(numbers, letters)) [('123', 'abc'), ('123', 'def'), ('123', 'ghi'), ('456', 'abc'), ('456', 'def'), ('456', 'ghi')]
您可以使用两个嵌套的for循环numbers和letters尝试列表理解:
print([l+n for n in numbers for l in letters]) # ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']
也可以对循环使用嵌套的:
out = [] for n in numbers: for l in letters: out.append(l+n) print(out) # ['abc123', 'def123', 'ghi123', 'abc456', 'def456', 'ghi456']
有关列表理解的更多详细信息,请参见doc或此related topic
谢谢你的回答!我简化了这个例子,所以上面所有的解决方案都很好地工作,但是在我正在处理的实际问题中,我想在这两个列表之间添加更多的代码行。我完成了嵌套这些循环:
无论如何,非常感谢你的帮助
取
numbers
和letters
的乘积(而不是letters
和numbers
),然后按相反的顺序连接生成的元组对于2元组,
y + x
就足够了,而不是使用''.join
两个列表的乘积就是所有可能的元组的集合,这些元组的创建顺序是从第一个列表中获取一个元素,从第二个列表中获取一个元素
您可以使用两个嵌套的for循环
numbers
和letters
尝试列表理解:也可以对循环使用嵌套的:
有关列表理解的更多详细信息,请参见doc或此related topic
相关问题 更多 >
编程相关推荐