Модификация отдельного элемента в списке внутри функции - PullRequest
0 голосов
/ 11 марта 2019

Я хочу изменить один элемент списка, добавив «великий» перед каждым именем мага, не создавая новый список.

magicians = ['john', 'dynamo', 'michael']

def make_great(list_name):
    ['great' + ' ' + magician for magician in list_name]

Я знаю, в чем проблема: эта «for in» меняет имя моей переменной, но не добавляет новую в список. Я пытался также с помощью «пока», но без эффекта. Результат, который я ожидаю:

magicians = ['great john', 'great dynamo', 'great michael'] 

Ответы [ 3 ]

0 голосов
/ 11 марта 2019

Вы можете изменить существующий список, обновив каждый элемент новым значением. Цикл for будет перебирать каждого члена списка магов, а значение x используется для доступа к каждой позиции в списке.

magicians = ['john', 'dynamo', 'michael']
x = 0
for magician in magicians:
    magicians[x] = "great {}".format(magician)
    x = x + 1

print(magicians)
0 голосов
/ 11 марта 2019

Вы можете использовать map() для этого, что чрезвычайно эффективно.

magicians = ['john', 'dynamo', 'michael']
magicians = list(map(lambda x: "great " + x, magicians)))
0 голосов
/ 11 марта 2019

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

magicians = [ "Great "+ item for item in magicians]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...