Python - 回文函数:收到错误“列表索引必须是整数或切片,而不是字符串”

2024-09-30 20:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试使用以下代码创建回文。我有一个名为“lowercaseewords”的txt文件,它本质上是一个充满小写单词的列表,我从中进行查询,我想将拼写相同的单词添加到名为“lines2”的列表中。你知道吗

代码如下:

def palindrome():
    lines = open('lowercasewords.txt','r').read().splitlines()
    lines2 = []
    for x in lines:
        if (lines[x]) == (lines[x][::-1]) is True:
            lines2.append(str(x))
        else:
            pass
    print(lines2)

但是,我收到错误:

TypeError: list indices must be integers or slices, not str

有人能帮忙吗???我可以证明“level”一词是相同的:

str(lines[106102]) == str(lines[106102][::-1])
True

Tags: 文件代码txttrue列表defopen单词
1条回答
网友
1楼 · 发布于 2024-09-30 20:18:54

运行for x in lines:时,x被设置为列表中的当前单词。然后,您的代码试图在lines中获取该单词的索引。这相当于说lines["hello"],没有任何意义。循环已将x设置为所需的值,因此不需要再引用lines。你知道吗

您也不需要检查if语句是否已经在测试某个语句是is True还是Truefalse。你知道吗

你可以通过简单地替换

if (lines[x]) == (lines[x][::-1]) is True:

if x == x[::-1]:

相关问题 更多 >