Как вставить пробел или ничего между старыми элементами массива - PullRequest
1 голос
/ 06 июля 2019

У меня есть массив [1,2,3], поэтому мне нужно заполнить несколько пробелов или ни одного значения между ними.

Например, [1,2,3] до [1,0,0,0,0,0,2,0,0,0,0,0,3,0,0,0,0,0] из примера. Мне нужно вставить 5 ни одного значения между старым членом. ( нулевое число соответствует пустым или отсутствующим значениям.)

Итак, как мне написать код, чтобы сделать это ?, некоторые циклы с append() или что-то еще.

Ответы [ 4 ]

2 голосов
/ 06 июля 2019

Вы можете использовать присвоение срезу:

lst = [1,2,3]

newlst = [0] * len(lst) * 6
newlst[::6] = lst

print(newlst)

Печать:

[1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0]
1 голос
/ 06 июля 2019

Вот код:

x = [1,2,3]
y = []
for i in x:
    y.append(i)
    y.extend([0]*5)

Сначала он добавляет сам элемент x, затем добавляет столько нулей, сколько вы укажете (замените число 5 на желаемое количество).

Результат:

>>> y
[1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0]
0 голосов
/ 06 июля 2019

А как же

l = [1,2,3]
[num if not idx else 0 for num in l for idx in range(6)]

0 голосов
/ 06 июля 2019

Эта функция принимает list и число 0, которое вы хотите добавить между.

Попробуйте это,

>>> def fill_n(arr,n):
    temp = []
    for el in arr:
        temp+=[el]+[0]*n
    return temp

Выход:

>>> l = [1,2,3]
>>> fill_n(l,5)

[1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...