如何在所有子列表上循环并使用python比较每个元素

时间:2019-04-17 17:25:59

标签: python-3.x

如何将多个列表项相互比较并提供结果?

X = [10 20 50 100 500 400]

Y = [30 20 60 70 90 490]

比较X[0](为10)和Y[0](为30),并在比较每个元素后检查哪个列表具有更大的数字。

我们如何在python3x中实现这一目标?

2 个答案:

答案 0 :(得分:2)

您可能想尝试以下代码:

>>> x = 10, 20, 50, 100, 500, 400
>>> y = 30, 20, 60, 70, 90, 490
>>> for index, (x_value, y_value) in enumerate(zip(x, y)):
        sign = '>' if x_value > y_value else '<' if x_value < y_value else '=='
        print(f'x[{index}] {sign} y[{index}]')

如果您尝试运行代码,它将产生以下输出:

x[0] < y[0]
x[1] == y[1]
x[2] < y[2]
x[3] > y[3]
x[4] > y[4]
x[5] < y[5]

如果这不是您要的,那么您将要澄清您的问题。


附录:

您确实应该针对修改后的场景提出一个新问题,但这是一个扩展的答案:

>>> x = [[112, 243, 512, 343, 90, 478], [40, 50, 60, 70, 80]]
>>> y = [[500, 789, 234, 400, 452, 150], [10, 20, 30, 40, 50]]
>>> for index_1, (row_x, row_y) in enumerate(zip(x, y)):
        for index_2, (value_x, value_y) in enumerate(zip(row_x, row_y)):
            print(f'x[{index_1}][{index_2}] {">" if value_x > value_y else "<" if value_x < value_y else "="} y[{index_1}][{index_2}]')

上面的代码应产生以下输出:

x[0][0] < y[0][0]
x[0][1] < y[0][1]
x[0][2] > y[0][2]
x[0][3] < y[0][3]
x[0][4] < y[0][4]
x[0][5] > y[0][5]
x[1][0] > y[1][0]
x[1][1] > y[1][1]
x[1][2] > y[1][2]
x[1][3] > y[1][3]
x[1][4] > y[1][4]

答案 1 :(得分:0)

如果我没看错您的问题,请尝试使用嵌套的for循环并比较每个元素。请Google“嵌套”以查看我所指的内容。可能会对您有帮助。