尝试将以下代码更改为“列表理解”时出现语法错误
初始代码:
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)
答案 0 :(得分:0)
我假设,您要从“ 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])
答案 1 :(得分:0)
您的代码: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 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
将其转换回列表。