Итак, я должен взять массив 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.






Вот как вы можете сделать это, используя понимание списка:
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]]
@user5179531 user5179531 не забудьте принять ответ, если он помог, спасибо! :-)
Вы также можете избежать создания переменных x и y, написав следующий код
[[i, j] for i in [1, 2, 3, 4] for j in [2, 4, 6] if i != j]
Лучше иметь переменные для списков, если они довольно большие. Вы не получаете дополнительные баллы за использование меньшего количества переменных ;)
@ ÓscarLópez Я не могу понять твой комментарий. Вы говорите, что лучше иметь два цикла for, чем сокращение Python, или вы говорите об именах переменных «i», «j»? Я думаю, что сокращения Python — это очень питонический способ перебора массивов, и он очень популярен для всего сообщества Python.
@ ÓscarLópez Я согласен, но это всего лишь еще один способ сделать это.
Вопрос, над которым я работал, требовал, чтобы они были переменными, чтобы их можно было изменять по желанию. Явное написание их в коде "закрепляет" их. Вот почему я использовал x и y.
@ Нико, я совсем не об этом. Я даже не говорю о пониманиях (не сокращениях, как вы говорите). Я говорю только об именах переменных.
Это также место, где вы можете использовать itertools для построения вывода. Получает тот же результат, что и понимание списка, но с немного меньшим количеством кода.
import itertools
x=[1,2,3,4]
y=[2,4,6]
list(itertools.product(x, y))
Спасибо! Я был так близок во всех своих попытках, но это самое простое. Я бы хотел, чтобы Python упростил синтаксис понимания списка.