#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() ;-)
Комментариев нет:
Отправить комментарий