Python: 比较两个列表中的值

Python: Comparing values in two lists

我确实尝试过寻找所有问题的解决方案,但没有成功找到任何东西。如果其他人已经问过这个问题,我深表歉意。进入正题。

我有两个列表,其中包含要相互比较的值。我尝试了以下选项。

list1 = [1,3,5,7,9]
list2 = [200,2]
x = 0
n = 0
y = 0

while x <= 9:
    if list1[y] >= list2[n]:
        print('TRUE')
        x = x + 1
        y = y + 1
        if y > 4:
            y = 0
            n = n + 1
    else:
        print('FALSE')
        x = x + 1
        y = y + 1
        if y > 4:
            y = 0
            n = n + 1

唯一的问题是,我需要遍历值列表而不是现有的变量。

因此,我希望代码看起来像这样:

x = 0
n = [0,1]
y = [0,3]
z = len(n) + len(y) - 1

while x <= z:
    if list1[y] >= list2[n]:
        print('TRUE')
        x = x + 1

    else:
        print('FALSE')
        x = x + 1

其中 n 和 y 是我要比较的数字的索引值。

这对我不起作用,我真的不知道该怎么做。

编辑:我认为我不必通过文本解释所有内容,因为我包含了两组代码。第一组代码有效,它准确地显示了我正在尝试做的事情。第二个是我想要它做的。

进一步细分我想知道如果list1[0]>=list2[0],后面是list1[3]>=list2[0],后面是list1[0]>=list2[1],其次是 list1[3]>=list2[1]。我期望的输出在我提供的代码中。

抱歉,如果我之前不清楚。我需要调用我将在单独列表中拥有的特定索引位置。这是我在第二个代码中试图概述的问题。

我想现在明白你想做什么了。
首先,有两个“原始”数据列表:

list1 = [1,3,5,7,9]
list2 = [200,2]

那么,有两组“兴趣指数”:

y = [0, 3] # indices of interest for list1
n = [0, 1] # indices of interest for list2

我觉得下面可以实现你想要的:

product = [(index1, index2) for index2 in n for index1 in y] #cartesian product 
for index1, index2 in product:
    if list1[index1] >= list2[index2]:
        print("True")
    else:
        print("False")

或者如果不需要笛卡尔积,只需在嵌套循环中执行即可:

for index2 in n: 
    for index1 in y:
        if list1[index1] >= list2[index2]:
            print("True")
        else:
            print("False")