在Python中尝试列表理解时出现语法错误
尝试将以下代码更改为列表时,我遇到语法错误 初始代码:在Python中尝试列表理解时出现语法错误,python,list-comprehension,Python,List Comprehension,尝试将以下代码更改为列表时,我遇到语法错误 初始代码: 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) I假设您想从“a”中提取唯一的
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)
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])
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])
您的代码:
new\u num=[a if num in b if num not in new\u num中的num for num]
不起作用,原因有两个:
- 只能使用if语句。您应该将与逻辑运算符结合使用:
如果num在b中,num不在new_num中
- 您不能在列表压缩中使用
,因为您尚未定义它,这是您正在创建的列表理解的结果。即使您像上一个项目符号中那样更正它,它也会引发一个NameErrornew_num
NameError:name'new\u num2'未定义
列表理解收集
a
中b
中的所有元素<代码>设置删除重复项<代码>列表将其转换回列表。您的代码:new\u num=[a中的num为num,if num为num,b中的num为num,if num为num,if num为num,if num不在new\u num]
不起作用,原因有二:
- 只能使用if语句。您应该将与逻辑运算符结合使用:
如果num在b中,num不在new_num中
- 您不能在列表压缩中使用
,因为您尚未定义它,这是您正在创建的列表理解的结果。即使您像上一个项目符号中那样更正它,它也会引发一个NameErrornew_num
NameError:name'new\u num2'未定义
列表理解收集
a
中b
中的所有元素<代码>设置删除重复项<代码>列表将其转换回列表。您只能有一个筛选条件,请尝试。。。如果num在b中
并且
num不在new中_num]
您使用的是什么版本的Python?我使用的是3.6.3,您的代码在我的机器上执行得很好。您不能在列表中引用正在创建的列表<直到列表理解完成后,才会设置“代码>新数值”。如果要消除重复项,请将其设置为“设置<代码>集代码>而不是<代码>列表代码>”。您只能有一个筛选条件,请尝试<代码>。。。如果num在b中并且
num不在new中_num]
您使用的是什么版本的Python?我使用的是3.6.3,您的代码在我的机器上执行得很好。您不能在列表中引用正在创建的列表<代码>新编号在列表理解完成后才会设置。如果要消除重复项,请将其设置为集合
,而不是列表
。是。非常感谢。我刚刚了解了布景。。。这对我很有用……是的。非常感谢。我刚刚了解了布景。。。这对我来说很有用。。