有一些关于python中列表理解的问题。第一个是我不知道为什么下面的代码中有错误:
alist = [1,2,3,4,5,6,0,9,9,4,5,0,0,2,3,0,9,6]
test = [x++ for x in alist if x != 0]
File "<stdin>", line 1
test = [x++ for x in list1 if x != 0]
^
SyntaxError: invalid syntax
另一个问题是我想写一个列表理解来计算非零元素。以alist
为例,如果count
中的元素不为零,则alist
中的元素为零,我想返回一个名为alist
的列表,其中包含1或0:1 }是零。所以结果应该是:
alist = [1,2,3,4,5,6,0,9,9,4,5,0,0,2,3,0,9,6]
count = [1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,0,1,1]
非常感谢你。
答案 0 :(得分:1)
Python没有++
运算符(或等效的递增或递减运算符),因为Python整数对象(和浮点对象)是不可变的。
所以你需要做
alist = [1,2,3,4,5,6,0,9,9,4,5,0,0,2,3,0,9,6]
test = [x+1 for x in alist if x != 0]
print(test)
<强>输出强>
[2, 3, 4, 5, 6, 7, 10, 10, 5, 6, 3, 4, 10, 7]
答案 1 :(得分:1)
您的第二个问题,请尝试以下
count=[1 if x>0 else 0 for x in alist]