Python: добавить значение в список по заранее определенным индексам - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть список (aList) Мне нужно создать еще один список такой же длины, что и aList (checkColumn) и добавить 1 в позиции, определенные в списке индексов (indexList), позиции, не определенные в 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 голосов
/ 03 сентября 2018

Вы можете сделать это в одной строке, используя понимание списка:

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]
0 голосов
/ 03 сентября 2018

Поможет ли это?

Сначала вы инициализируете checkColumn с 0

checkColumn = [0] * len(aList)

Затем переберите indexList и обновите checkColumn

for idx in indexList:
    checkColumn[idx] = 1

ура!

0 голосов
/ 03 сентября 2018
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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...