编写一个从通过引用传递的列表参数中剪切的函数
write a function that cuts from a list argument passed by reference
我需要编写一个函数,从作为参数传递的列表中删除前 2 项并更改它。 不是return修改后的列表
所以如果一个电话:
fruits = ['apple','orange','grape','banana']
print fruits # prints ['apple','orange','grape','banana']
f1(fruits)
print fruits # prints ['grape','banana']
我试过:
def f1(a):
a[:] = a[2:] # throws TypeError: 'str' object does not support item assignment
def f1(a):
a = a[2:] # doesn't change the value of fruits
f1(*a)
似乎都不起作用。我搜索了 Whosebug,但似乎找不到答案。
请不要告诉我 return 来自 f1
的 a
的值。
切片运算符 ( [x:y]
) 创建另一个列表,您要做的是删除列表中已有的元素,如下所示:
def f1(a):
del a[0:2]
试试下面的功能吧!你必须改变 a
本身,而不是创建另一个列表。
def f(a):
del a[0]
del a[0]
您可以使用列表的 pop
方法就地更改输入列表:
def f(a):
a.pop(0)
a.pop(0)
我需要编写一个函数,从作为参数传递的列表中删除前 2 项并更改它。 不是return修改后的列表
所以如果一个电话:
fruits = ['apple','orange','grape','banana']
print fruits # prints ['apple','orange','grape','banana']
f1(fruits)
print fruits # prints ['grape','banana']
我试过:
def f1(a):
a[:] = a[2:] # throws TypeError: 'str' object does not support item assignment
def f1(a):
a = a[2:] # doesn't change the value of fruits
f1(*a)
似乎都不起作用。我搜索了 Whosebug,但似乎找不到答案。
请不要告诉我 return 来自 f1
的 a
的值。
切片运算符 ( [x:y]
) 创建另一个列表,您要做的是删除列表中已有的元素,如下所示:
def f1(a):
del a[0:2]
试试下面的功能吧!你必须改变 a
本身,而不是创建另一个列表。
def f(a):
del a[0]
del a[0]
您可以使用列表的 pop
方法就地更改输入列表:
def f(a):
a.pop(0)
a.pop(0)