Я получаю синтаксическую ошибку при попытке изменить следующий код на Список понимания
Исходный код:
new_num =[] for num in a: if num in b: if num not in new_num: new_num.append(num) print(new_num)
Изменить на понимание списка:
new_num = [num for num in a if num in b if num not in new_num] print(new_num)
Ваш код: new_num = [num for num in a if num in b if num not in new_num] не работает по двум причинам:
new_num = [num for num in a if num in b if num not in new_num]
if num in b and num not in new_num
new_num
NameError: name 'new_num2' is not defined
Если вы хотите использовать понимание списка, вы можете использовать set () .
new_num2 = list(set([num for num in a if num in b])) print(new_num2)
Понимание списка собирает все элементы a, которые находятся в b.set удаляет дубликаты.list преобразует его обратно в список.
a
b
set
list
I Предположим, вы хотите извлечь уникальные элементы из 'a'.Если это то, что вы пытаетесь сделать, то код ниже делает это.
a = [12,4,5,6,7,3,4,12,5,7] unique_numbers = set(a) print(unique_numbers)
Вывод
set([3, 4, 5, 6, 7, 12])