Python:将值添加到预定义索引的列表中

时间:2018-09-03 15:42:28

标签: python list

我有一个列表(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)并得到相同的结果。 感谢您的帮助!

3 个答案:

答案 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]