我的列表不是元组,为什么错误提示不是这样? :(

问题描述 投票:0回答:1

我的代码中不断出现相同的相关错误,只是无法弄清楚问题出在哪里。尝试了网上能找到的所有方法,但似乎不起作用。这是一段代码。 (我知道它可能没有优化,但这对我来说不是主要问题) 我也在Python 3.9.1

def init():         # créer la liste de données
    liste = []
    liste_lettre = []
    for x in range(len(texte)-1):

        lettre_init = []
        liste_poss = []

        if texte[x][0] not in liste_lettre:

            liste_lettre.append(texte[x][0])
            lettre_init = texte[x][0]

            for i in range(len(texte)-1):
                for j in range(len(texte[i])):

                    if texte[i][j] == lettre_init:

                        if j == len(texte[i]):
                            liste_poss += (" ")

                        else:
                            liste_poss.append(texte[i][j+1])
                            print(hasattr(liste_poss, "append"))
                            

                liste_poss = lettre_init, liste_poss
                liste.append(liste_poss)
    return liste

好的,解释一下我的代码是关于什么的:

我正在尝试创建一个函数,将给定文本 (

texte
) 中的字母的连续迭代存储到数组 (
liste
) 中。
texte
是单词数组

该函数会检查

texte
的每个单词的每个字母(如果该字母已被验证)。 如果不是,每次它在
lettre_init
中的单词中看到给定的字母(存储在
texte
中),如果这是该单词的最后一个字母,它就会在列表中添加一个空格(“”)
liste_poss
;如果不是单词的最后一个字母,它将添加到单词中下一个字母的
liste_poss
。 完全验证
texte
后,由已验证的字母(
lettre_init
)和所有后续字母(
liste_poss
)组成的列表将添加到数组
liste
中。 最后返回
liste

我一直有错误

AttributeError: 'tuple' object has no attribute 'append'
对于线路
liste_poss.append(texte[i][j+1])

我用

texte
验证了
liste_poss
hasattr(liste_poss, "append")
,它返回了
True
我尝试了
liste_poss += (texte[i][j+1])
,但错误是
TypeError: can only concatenate tuple (not "str") to tuple

这个问题似乎与一个对象是一个元组有关,但我只是找不到问题是什么? 如果您有任何想法请帮助我,我迷路了。

python attributes tuples append attributeerror
1个回答
0
投票

以防万一您不知道,保存用逗号分隔的元素,就像在您的行中一样

liste_poss = lettre_init, liste_poss

将创建一个元组。

这里,例如:

© www.soinside.com 2019 - 2024. All rights reserved.