编写一个从通过引用传递的列表参数中剪切的函数

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 来自 f1a 的值。

切片运算符 ( [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)