我需要一些帮助,我有一些我写过的代码应该使用函数来操作列表。我遇到的问题是保持这个被操纵的列表在主编码中使用。例如,我创建了一个列表,其中包含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')
答案 0 :(得分:3)
您只需将函数的返回值赋给变量,并且由于您想要更新相同的列表,您可以在调用函数时执行类似的操作。
aList = aLeave(aList, input("Stuff"))
此外,在函数内部,aList = tempq
不是必需的,因为它所做的只是更新局部变量aList。要更新全局范围中的aList,可以在函数顶部编写global aList
,但这不被视为良好的设计实践,应尽可能避免。