Python:如何更新函数中的列表?

时间:2018-08-06 14:13:57

标签: python-2.7 list

在以下可执行程序中,我创建了一个列表。还有一个删除特定元组的功能。在运行此程序时,系统会提示用户输入一个元素。之后,您会看到我为remove_tuple_from_list()函数提供了一次创建的列表和要删除的元素。现在我有一个问题:调用函数后的打印显示了列表中相同的元素。我假设将list_tuple提交给remove_tuple_from_list()函数并将相应的元素从列表中删除后,曾经创建的列表就被更新了。

我的想法是将现有列表提供给函数,对其进行编辑,然后更新现有列表。

list_tuple = [("100", 'AAA'), ("80", 'BBB'), ("20", 'CCC'), ("40", 'DDD')]

def remove_tuple_from_list(list_tuple,
                           delete_element,
                           index = 0):

    list_tuple = [element for element in list_tuple if not element[index] == delete_element]

if __name__ == "__main__":

    print "Before: list_tuple", list_tuple
    print ""
    delete_element = raw_input('Enter Element to be deleted: ')

    remove_tuple_from_list(list_tuple = list_tuple, delete_element = delete_element)

    print "After: list_tuple", list_tuple

1 个答案:

答案 0 :(得分:1)

raw_input()返回一个字符串,而不是一个元组。您应该改用input(),以便您的输入可以评估为元组。您的remove_tuple_from_list()也不执行从delete_element中删除list_tuple的操作,因为它在将element[index]与{{1 }}。而且,它还为delete_element分配了一个新的列表引用,因此调用者的element永远不会更新。您应该改为使用切片运算符更新delete_element

list_tuple

给出list_tuple的输入,以上输出:

list_tuple