在文件中搜索回文并使用python将它们打印在列表中

时间:2014-10-31 15:45:33

标签: python list append text-files

我试图编写一个读取文件的代码,然后返回文件中所有回文的列表。所以我创建了一个函数检查,如果一个单词是回文并且我试图编写另一个函数来读取文件,删除空格,分成单词,然后测试每个单词以查看如果它是回文。如果它是回文,那么我将它添加到我将最后打印的列表中。但是,我收到一个错误" AttributeError:' tuple'对象没有属性'追加'"如何将这些回文添加到此列表中?

def findPalindrome(filename):
    #an empty list to put palindromes into
    list3 = ()
    #open the file 
    for line in open(filename):
        #strip the lines of blank space
        list1 = line.strip()
        #Split the lines into words
        list2 = line.split()
        #call one of the words
        for x in list2:
            #test if it is a palindrome
            if isPalindrome(x):
                #add to list3
                list3.append(x)
    #return the list of palindromes
    return list3

2 个答案:

答案 0 :(得分:1)

这里的问题是list3实际上不是一个列表。不要执行list3 = (),而是执行list3 = []

执行()会创建一个tuple,这是一种类似于列表的数据结构,但在首次创建后无法更改。这就是你无法追加它的原因,因为这会改变元组。 []创建一个实际列表,该列表是可变的,可以随时间更改。

答案 1 :(得分:1)

删除:

list3=() # because it creates an empty tuple

by:

list3=list() # create an empty list

同时替换:

list2 = line.split()

by:

list2 = list1.split() # because stripped line is in list1 not in line