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)]
添加回答
舉報