Создайте функцию, которая изменит список, переданный с параметром имени по данному индексу - PullRequest
0 голосов
/ 10 февраля 2020

Я хочу создать функцию, которая будет изменять список, передаваемый с параметром имени по заданному индексу. Например:

mylist = ['Mike', 'Terry', 'Kate', 'Brian']

Я хочу заменить Терри с индексом [1] на Matt, но мне нужно использовать такую ​​функцию:

def changeName(newList, name, index):

, поэтому вывод newList должен быть:

newList = ['Mike', 'Matt', 'Kate', 'Brian']

Очень ценится.

Я пробовал это, но это не удовлетворяет требованию.

mylist = ['Mike', 'Terry', 'Kate', 'Brian']
def changeName(aList):
    aList[1] = 'Matt'
changeName(mylist)
print(mylist)

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Кроме того, если вы используете / имитируете функциональный стиль, вы можете sh создать и вернуть совершенно новый список с необходимыми изменениями в нем.

def changeName(oldlist, name, index):
    newlist = list(oldlist) #copy the old list
    newlist[index] = name   #change item at index
    return newlist

#which you then use like this:
edited = changeName(mylist,"Matt",1)
0 голосов
/ 10 февраля 2020

У тебя почти было это.

def changeName(newList, name, index):
    newList[index] = name

changeName(mylist,"Matt",1)

В основном, если функция имеет один, два или много параметров, не имеет значения вообще. Есть несколько особых случаев, которые вы можете выполнить (например, неограниченное количество параметров, значений по умолчанию и т. Д., Но это пока не так важно).

Кроме того, не называйте вашу переменную list this является встроенной функцией, и она может вызвать проблемы в будущем, если вы будете использовать ее в качестве имени переменной. Вот почему я назвал это mylist.

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