Как выбрать пары из двух списков /? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть два списка, из которых я хочу выбрать пары таким образом, чтобы каждый элемент в одном наборе сочетался с другим элементом в другом наборе, только если они не совпадают. Это код, который я пробовал до сих пор.

start1 = [1, 4, 0, 2, 0, 3, 3, 3, 3, 1]
end1 = [0, 0, 0, 2, 1, 2, 2, 4, 1, 4]

for x in start1:
    for y in end1:
        if x != y:
            print(x,y)

Приведенный выше код дает мне результаты, которые выглядят примерно так ...

1 0
1 0
1 0
1 2
1 2
1 2
1 4
1 4
4 0
4 0
4 0
4 2
4 1
4 2
4 2
4 1
.
.
.

Однако попытки получить такие результаты ... .

1 0
4 0
0 1
3 2
3 2
3 4
3 1
1 4

Поскольку я новичок в python, у меня возникли трудности с этой проблемой. Может ли кто-нибудь помочь мне достичь моей цели?

С уважением.

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Объедините списки вместе, фильтруя результаты.

start1 = [1, 4, 0, 2, 0, 3, 3, 3, 3, 1]
end1 = [0, 0, 0, 2, 1, 2, 2, 4, 1, 4]

for x, y in zip(start1, end1):
    if x != y:
        print(x,y)
0 голосов
/ 26 мая 2020
[item for item in zip(start1, end1) if item[0] != item[1]]
>> [(1, 0), (4, 0), (0, 1), (3, 2), (3, 2), (3, 4), (3, 1), (1, 4)]
...