在使用函数更改变量后,如何使用更新的列表更新变量(列表)?

时间:2017-03-28 21:24:01

标签: python list python-3.x

我需要一些帮助,我有一些我写过的代码应该使用函数来操作列表。我遇到的问题是保持这个被操纵的列表在主编码中使用。例如,我创建了一个列表,其中包含4个人排队等候票的名称,然后我在一个函数中输入此列表以删除第3行。这将创建一个新列表,我希望能够在该函数之外进行操作。这是我到目前为止的代码

def aLeave(aList,usrstr):

    tempq = []
    idx = 0
    found = False
    while idx < len(aList) and not found: #This section works out the index
        if aList[idx] == usrstr:          # of the user string that needs removed
            found = True                  # from the queue list.
        else:
            idx = idx + 1

    if found:        
        for i in range(len(aList)):           #This sections takes the index previously 
            if i == idx:                      #found and uses it to create a new list
                continue                      #without the element the user has requested to be removed
            tempq.append(aList[i])

    aList = tempq
    print(aList)
    return aList

aList = ["john","mark","pete","dave"]

aLeave(aList,input("what do you want to remove"))

print (aList)

非常感谢任何帮助!

谢谢(该功能被称为'aLeave')

1 个答案:

答案 0 :(得分:3)

您只需将函数的返回值赋给变量,并且由于您想要更新相同的列表,您可以在调用函数时执行类似的操作。

aList = aLeave(aList, input("Stuff"))

此外,在函数内部,aList = tempq不是必需的,因为它所做的只是更新局部变量aList。要更新全局范围中的aList,可以在函数顶部编写global aList,但这不被视为良好的设计实践,应尽可能避免。