Есть ли функция Python, которая может решать или поддерживать, манипулируя множеством элементов в массиве одновременно? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть пустой массив, и мне нужно заменить его на свои собственные, в которые я хочу их сохранить. Пожалуйста, просмотрите код:

ans = np.empty(5, dtype=np.int64)    #here is the empty array which has 5   items
for i in range(4):                   # I have introduced here a for loop which 
                                     #goes over each item in that array
  a = 2                        #the first item I want to insert in that 
                               #array
  b = 4                        # the second one
  ans[i] =a  
  ans[i + 1] = b
  # I expected the following: [a, b, a, b, a] 
  # but it gives : [a, a, a, a, b]

Я пробовал кодкоторые я предоставляю вам:

ans = np.empty(5, dtype=np.int64)
for i in range(4):
    a = 2   
    b = 4 
    ans[i] =a
    ans[i + 1] = b

1 Ответ

0 голосов
/ 18 февраля 2019

В вашем коде есть логическая проблема.в i th итерации вы получаете доступ к элементу i + 1 th и i + 1 th Элемент и в итерации i + 1 th вы изменяете i th элемент, который был i + 1 th элемент для i th итерации.Следовательно, всегда текущий элемент будет в массиве, значит ans [i] = 2 будет работать до 3. Чтобы сделать то, что вы пытаетесь сделать, вы должны увеличить значение переменной цикла на 2.

ans = np.empty(5, dtype=np.int64)
for i in range(0,5,2):    #incrementing with 2 so that you do not overwrite the previous element
a = 2   
b = 4 
ans[i] = a
if i+1<5:     # This is used to check in case you are accessing out of range element
    ans[i + 1] = b
# This will output to 2 4 2 4 2

Синтаксис Python range () это range ([start], stop [, step])

Я думаю, это поможет вам понять, что вы делаете неправильно ..

...