我有一个列表(aList) 我需要创建另一个长度与aList(checkColumn)相同的列表,并在索引列表(indexList)中定义的位置添加1,未在indexList中定义的位置应为0
输入:
aList = [70, 2, 4, 45, 7 , 55, 61, 45]
indexList = [0, 5, 1]
所需的输出:
checkColumn = [1,1,0,0,0,1]
我一直在尝试以下代码,但输出为[1,1]
for a in len(aList):
if a == indexList[a]:
checkColumn = checkColumn[:a] + [1] + checkColumn[a:]
else:
checkColumn = checkColumn[:a] + [0] + checkColumn[a:]
我尝试使用checkColumn.insert(a,1)并得到相同的结果。 感谢您的帮助!
答案 0 :(得分:3)
有什么帮助吗?
首先,您将checkColumn初始化为0
checkColumn = [0] * len(aList)
然后,遍历indexList并更新checkColumn
for idx in indexList:
checkColumn[idx] = 1
干杯!
答案 1 :(得分:2)
您可以使用列表理解功能在一行中完成此操作:
aList = [70, 2, 4, 45, 7 , 55, 61, 45]
indexList = [0, 5, 1]
checkColumn = [1 if a in indexList else 0 for a in range(len(aList))]
print(checkColumn)
# [1, 1, 0, 0, 0, 1, 0, 0]
答案 2 :(得分:-1)
aList = [70, 2, 4, 45, 7 , 55, 61, 45]
indexList = [0, 5, 1]
checkColumn = []
for x in range(len(aList)):checkColumn.insert(x,1 if x in indexList else 0)
print(checkColumn)
输出:
[1, 1, 0, 0, 0, 1, 0, 0]