“str”对象没有附加节点的“附加”属性

问题描述

我正在做关于霍夫曼编码的项目,这发生了 'str' 对象没有属性 'append' node[pos].append("0")

while len(letters)>0:
    nodes.append(letter[0:2])
    letters = letters[2:]
nodes.sort()
huffman_tree = []
huffman_tree.append(nodes)

def combine(nodes):
    pos = 0
    newnode = []
    if len(nodes)>1:
        nodes.sort()
        nodes[pos].append ("0")
        nodes[pos+1].append ("1")
        combined_node1 = (nodes[pos][0]+nodes[pos+1][0])
        combined_node2 = (nodes[pos][1]+nodes[pos+1][1])
        newnode.append(combined_node1)
        newnode.append(combined_node2)
        newnodes = []
        newnodes.append(newnode)
        newnodes = newnodes + node[2:]
        nodes = newnodes
        huffman_tree.append(nodes)
        combine(nodes)
    return huffman_tree
newnodes = combine(nodes)

我希望将节点列表添加为 node[pos][0] 但出现这种情况我该怎么办

解决方法

附加到字符串的方式是用 + 创建一个新字符串并赋值。

node[pos] = node[pos] + '0'

字符串是不可变的,因此它不可能有 append 方法。