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

时间:2016-01-21 11:24:27

标签: python pass-by-reference

我需要编写一个函数来剪切作为参数传递的列表中的前2项并进行更改。 不返回修改后的列表

所以如果打电话:

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)似乎都不起作用。我搜索了StackOverflow,但似乎无法找到答案。

请不要告诉我从a返回f1的值。

3 个答案:

答案 0 :(得分:3)

切片运算符([x:y])创建另一个列表,您需要做的是删除列表中已有的元素,如下所示:

def f1(a):
     del a[0:2]

答案 1 :(得分:1)

尝试以下功能!你必须改变a本身,而不是创建另一个列表。

def f(a):
    del a[0]
    del a[0]

答案 2 :(得分:1)

您可以使用列表中的pop方法更改输入列表:

def f(a):
   a.pop(0)
   a.pop(0)