Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在执行以下python代码时面对_Python_List Comprehension - Fatal编程技术网

在执行以下python代码时面对

在执行以下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

需要知道在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: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}
可以更容易地获得结果。