Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Замена элементов в листе по их индексу начиная с 1 а не 0

#python #list #список #range


Есть лист

list_1 = ['a', 'b', 'c']


Значения должны быть заменены таким образом

list_1 = ['element_1', 'element_2', 'element_3']


Начиная с 1 а не 0

Я пробовала так сделать

list_1 = ['element_{}'.format(i) for i in range(i+1, len(list_1))]


или так

list_1 = ['element_{}'.format(i) for i in range(1, len(list_1))]


Но если в листе 1 элемент возвращается пустой лист

list_2 = ['a']

    


Ответы

Ответ 1



На выбор: list_1 = ['element_{}'.format(i+1) for i in range(len(list_1))] list_1 = ['element_{}'.format(i) for i in range(1, len(list_1)+1)]

Ответ 2



for i in range(len(list_1)): # Проходим циклом по номерам списка list_1[i] = 'element_' + str(i + 1) # элементу списка с текущим номером присваиваем номер + 1, в виде строки

Ответ 3



Мне кажется для данной задачи более уместно использовать enumerate(iterable, start=1): >>> res = [f"element_{i}" for i,x in enumerate(list_1, 1)] >>> print(res) ['element_1', 'element_2', 'element_3'] PS именно для этих целей и была создана функция enumerate() ;-)

Комментариев нет:

Отправить комментарий