Как установить одно и то же значение в нескольких индексах массива один раз на python?

#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]