step["args"][1][base + i for i in range(31)] = True為什么我收到無效的語法錯誤?我想在 python 中使用列表理解以便不寫:step["args"][1][base + 1] = Truestep["args"][1][base + 2] = Truestep["args"][1][base + 3] = Truestep["args"][1][base + 4] = Truestep["args"][1][base + 5] = True...step["args"][1][base + 30] = True
2 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
[base + i for i in range(31)]
評估為:
[0, 1, 2, ..., 30]
所以你試圖用一個長度為 31 的列表來分割一些東西。
您無法通過列表理解輕松實現您想要做的事情(他們不做作業)。
你需要一個 for 循環:
for i in range(31): step["args"][1][base + i] = True

慕后森
TA貢獻1802條經驗 獲得超5個贊
如果您嘗試分配True
給現有列表中的“插槽”范圍:
from itertools import repeat step["args"][1][base+1:base+31] = repeat(True, 30)
添加回答
舉報
0/150
提交
取消