Понимание с цепями за высказывания - PullRequest
0 голосов
/ 27 февраля 2019

Итак, я должен взять массив x и массив y и создать новый массив пар, чтобы элементы не были равны.Вот мой код:

x=[1,2,3,4]
y=[2,4,6]
my_list=[]
for a in x:
    for b in y:
        if a!=b:
            list=[a,b]
            my_list.append(list)
#my_list+=[(a,b) for (a,b) in (x,y) if (a!=b)]
print (my_list)

Таким образом, вывод: [[1, 2], [1, 4], [1, 6], [2, 4], [2, 6], [3, 2], [3, 4], [3, 6], [4, 2], [4, 6]]

Не импортируя что-либо, как мне свернуть это с пониманием списка И прикованным для операторов.Моя скудная попытка находится в разделе #comment.

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Вы также можете избежать создания переменных x и y, написав следующий код

[[i, j] for i in [1, 2, 3, 4] for j in [2, 4, 6] if i != j]

0 голосов
/ 27 февраля 2019

Здесь также можно использовать itertools для создания выходных данных.Получает тот же вывод, что и для понимания списка, но с немного меньшим количеством кода.

import itertools

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

list(itertools.product(x, y))
0 голосов
/ 27 февраля 2019

Вот как вы можете сделать это, используя понимание списка:

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

[[a,b] for a in x for b in y if a!=b]

Вывод

[[1, 2], [1, 4], [1, 6], [2, 4], [2, 6], [3, 2], [3, 4], [3, 6], [4, 2], [4, 6]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...