#python #arrays
Вопрос:
У меня есть массив, подобный этому: a=[1,2,3,4,5,6,7]
мне нужно заменить значение индекса 1 , 4 ,5 значением 10, но без использования цикла for.
результат: a=[1,10,3,4,10,10,7]
Комментарии:
1. обратите внимание на домашнее задание, на самом деле у меня есть более 1000 индексов, которые должны быть установлены с одним и тем же значением. Вот как мне нужно решение
2. каковы критерии использования индекса?
3. Может быть, тогда используйте цикл while.
4. Почему тогда вы не можете использовать цикл for?
5. @ Педро Майя , я не хочу использовать цикл, потому что на это требуется время
Ответ №1:
Я думаю, вы могли бы использовать numpy для этого:
import numpy as np a = np.array([1, 2, 3, 4, 5, 6, 7]) indices = [1, 4, 5] a.put(indices, 10)
Результат:
array([ 1, 10, 3, 4, 10, 10, 7])
Комментарии:
1. Ну, прелесть использования numpy в том, что вы можете использовать массив индексов в качестве … индекса! Просто сделай
a[indices] = 10
это …
Ответ №2:
Это нормально?
a[1] = a[4] = a[5] = 10
Комментарии:
1. У меня есть индекс в массиве примерно так : индекс=[1,4,5], это просто пример, на самом деле у меня есть более 1000 индексов, которые нужно установить с тем же значением
2. Тогда нет никакого способа без использования цикла (насколько я знаю) @Asma01
Ответ №3:
Для этого вы можете использовать numpy.
import numpy as np a = np.array([1, 2, 3, 4, 5, 6, 7]) toChange = [1, 4, 5] a[toChange] = 10 # changes all indices in toChange into 10
Вы даже можете передать список, чтобы изменить каждый выбранный индекс на другое значение, используя:
a[toChange] = [0, 1, 10]