Как я могу использовать списочное понимание для манипулирования данными массива по индексу? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть фрагмент кода, который в основном перемещает каждый элемент в списке вниз на 1, чтобы освободить место для новых входных данных позже в первой позиции следующим образом:

wave_amp.reverse()

for i in range(len(wave_amp)-1):
    wave_amp[i] = wave_amp[i+1]enter code here

wave_amp.reverse()

Как я могу выполнить быстрее, если вы понимаете список, если это возможно?

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

вы можете использовать list.insert :

list.insert (i, x)

Вставить элемент в заданную позицию. Первый аргумент - это индекс элемента, перед которым нужно вставить, поэтому a.insert (0, x) вставляет в начало списка, а a.insert (len (a), x) эквивалентен a.append ( x).

my_list = [1, 2, 3, 4]
new_input = 100
my_list.insert(0, new_input)

print(my_list)

вывод:

[100, 1, 2, 3, 4]

или вы можете вставить значение по умолчанию, пока не захотите заполнить новым вводом

my_list.insert(0, None)
1 голос
/ 12 апреля 2020

Попробуйте:

wave_amp.insert( 0 , new_item )

Метод list.insert(index , item) вставляет элемент в нужный индекс списка. В вашем случае мы хотим добавить новый элемент в начало списка, поэтому мы должны вставить в index = 0.

. Или, если вы хотите освободить место и добавить этот элемент позже, вы можете попробовать это:

# Make some room in list
wave_amp = [None] + wave_amp
# ...
# Some code
# ...
wave_amp[0] = new_data
...