首页 > 解决方案 > 遍历 2 个 Python 列表并获取所有 x 到 y 组合

问题描述

我有以下两个列表:

x = [1,2] y = [4,5,6]

我想用z迭代x。

我有一个名为 code 的变量设置为 NONE,另一个名为 value 的变量也设置为 NONE。这是我的目标输出:

1st iteration, code = 1 and value = 4
2nd iteration, code = 1 and value = 5
3rd iteration, code = 1 and value = 6
4th iteration, code = 2 and value = 4
5th iteration, code = 2 and value = 5
6th iteration, code = 2 and value = 6

这是我尝试过的:

x = [1, 2]
y = [4, 5, 6]

code = None
value = None


for x_ids, y_ids in zip(x, y):
    code = x_ids
    value = y_ids
    print("c", code)
    print("v", value)

output: 
c 1
v 4
c 2
v 5

谁能建议如何获得上述输出?

标签: python-3.xlist

解决方案


这是实现您正在寻找的一种方法:

x = [1, 2]
y = [4, 5, 6]

code = None
value = None

iter_count = 0
for x_ids in x:
    code = x_ids
    for y_ids in y:
        iter_count += 1
        value = y_ids
        print('{} iteration, code = {} and value = {}'.format(iter_count, code, value))
        #print(str(iter_count) + ' iteration, code = ' + str(code) + 'and value = ' + str(value))

就像评论中讨论的那样,这段代码遍历y. x在您的原始代码中,您使用zip. 由于您也想打印迭代次数,因此有一个新变量 ,iter_count用于计算并存储这些次数。

该代码有两个打印语句,它们打印相同的消息。注释掉的一个连接字符串,并将数字转换为字符串。未注释的可能不太直观,但通常更有用和更清晰。值得一看,你可以在这里找到介绍。

最后一件事,如果您也需要 - 以等格式打印数字1st2nd您可以使用其中一些方法


推荐阅读