2 回答

TA贡献1851条经验 获得超3个赞
至于说在这里,你不能在一个外壳线使用多个语句。
为每个语句使用新行
listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
listMask = []
for item in listOrigin:
if item > 0:
listMask.append(1)
elif item < 0:
listMask.append(-1)
else:
listMask.append(0)
print(listOrigin)
print(listMask)
[10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
[1, -1, 1, 1, 0, 1, -1, 1, -1, 1]

TA贡献1827条经验 获得超8个赞
我只在这里假设。如果这是您的代码:
listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
listMask = []
for item in listOrigin:
if item > 0:
listMask.append(1)
elif item < 0:
listMask.append(-1)
else:
listMask.append(0)
print(listOrigin)
print(listMask)
那么它的工作原理。您需要对语句使用多行。但是,您也可以这样编写代码:
listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
# Place a 1 if the item is above 0, else a -1. 0 will be flagged as -1.
listMask = [1 if elt > 0 else -1 for elt in listOrigin]
# Place the 0
listMask = [listMask[k] if elt != 0 else 0 for k, elt in enumerate(listOrigin)]
添加回答
举报