Вставить в список элемент по определенному индексу, перезаписать элемент по тому же индексу или расширить список - PullRequest
1 голос
/ 03 октября 2019

У меня есть список, который выглядит следующим образом:

a_list = ['A','B','C','D']

И я хочу добиться чего-то вроде (возможность расширить список):

new_index = 6
new_value = 'AA'
a_list = insert_value(new_index, new_value)
print(a_list)
#['A','B','C','D','','','AA']

А также что-то вроде(возможность перезаписать новое_значение):

new_index = 2
new_value = 'AA'
a_list = insert_value(new_index, new_value)
print(a_list)
#['A','B','AA','D']

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Я думаю, вам нужно:

def expand_insert(lst, idx, ele):
    if len(lst) < idx:
        void = idx - len(lst)

        for i in range(void):
            lst.append("")
        lst.append(ele)
    else:
        lst[idx] = ele
    return lst

print(expand_insert(a_list, 6, "AA"))
0 голосов
/ 03 октября 2019
a_list = ['A','B','C','D']
index = [6,2]

for i in index:
if i >= len(a_list):
    a_list.extend([''] * (i - len(a_list) + 1))
    print(a_list)
    a_list[i] = 'BBB'
else:
    a_list[i] = 'AAA'

a_list
['A', 'B', 'AAA', 'D', '', '', 'BBB']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...