如何按指定顺序拼接两个列表,为list1每个元素遍历list2生成配对元组
实现方法
首先先修正Python列表的标准写法,元素之间需要用逗号分隔:
list1 = [2, 3, 4] list2 = [0, 1, 2, 3]
方法1:嵌套循环(逻辑最直观)
完全匹配你要求的遍历逻辑,先取list1的单个元素,遍历完list2所有元素完成配对后,再处理list1的下一个元素:
res = [] for n1 in list1: for n2 in list2: res.append(f"({n1},{n2})") # 空格拼接输出 print(" ".join(res))
方法2:使用itertools.product(写法更简洁)
Python标准库内置的笛卡尔积生成工具,默认优先遍历右侧传入的可迭代对象,刚好符合你的顺序要求:
from itertools import product res = [f"({a},{b})" for a, b in product(list1, list2)] print(" ".join(res))
两种方法运行后都能得到输出:(2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) (4,0) (4,1) (4,2) (4,3)
如果只需要截取到你示例里的(4,0)位置,对结果列表切片取值即可。
内容的提问来源于stack exchange,提问作者absolute_schmuck
相关产品推荐
相关产品推荐

