У меня есть список с целыми числами и строками l = [1, 2, 'a', 'b']
, и я хочу написать функцию, которая берет список и манипулирует им таким образом, что впоследствии он просто содержит целые числа. Вывод функции выглядит так, как я хочу, но он не меняет «оригинальный» список.
def filter_list(l):
temp =[]
for item in l:
if type(item) == int:
temp.append(item)
l = temp
return l
Function output: [1, 2]
Variable explorer: [1,2,'a','b']
В отличие от функции
def manipulate(l):
l.append("a")
return l
Function output: [1, 2, 'a', 'b', 'a']
Variable explorer: [1, 2, 'a', 'b', 'a']
меняет «оригинальный» список.
- В чем разница между тезисом 2, т.е. почему второй
манипулирует моим «оригинальным» списком, а первый - нет? - Как мне настроить функцию 1, чтобы получить желаемый результат?
Спасибо!