在执行以下python代码时面对
需要知道在python理解中与else一起使用continue语句时为什么会出现此错误在执行以下python代码时面对,python,list-comprehension,Python,List Comprehension,需要知道在python理解中与else一起使用continue语句时为什么会出现此错误 sample_list=[6,98,34,45,64,7,2,5,78,90,324,111,657,438] #在这里写代码 s={i:j如果i%j==0,则在范围(1,i+1)内j的样本_列表中继续i} 印刷品 在python中运行上述理解时,我遇到了这个错误 File "<ipython-input-14-0ca1dfa0b6f9>", line 4 s ={i
sample_list=[6,98,34,45,64,7,2,5,78,90,324,111,657,438]
#在这里写代码
s={i:j如果i%j==0,则在范围(1,i+1)内j的样本_列表中继续i}
印刷品
在python中运行上述理解时,我遇到了这个错误
File "<ipython-input-14-0ca1dfa0b6f9>", line 4
s ={i:j if i%j == 0 else continue for i in sample_list for j in range(1,i+1)}
^
SyntaxError: invalid syntax
文件“”,第4行
s={i:j如果i%j==0,则在范围(1,i+1)内j的样本_列表中继续i}
^
SyntaxError:无效语法
按照@rdas的建议,将continue
替换为print()
sample_list = [6, 98, 34, 45, 64, 7, 2, 5, 78, 90, 324, 111, 657, 438]
s ={i:j if i%j == 0 else print() for i in sample_list for j in range(1,i+1)}
print(s)
不能在理解中使用像
continue
这样的语句,只能使用表达式。使用if过滤器,这是一个有副作用的丑陋解决方案。您只需将if
移动到正确的位置:s={i:j for i in sample_list for j in range(1,i+1)if i%j==0}
我假设这是一个简化的示例,因为使用s=dict(zip(sample_list,sample_list))
或s={x:x for x in sample_list}
可以更容易地获得结果。