-2

I'm doing project on huffman coding and this happen 'str' object has no attribute '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)

I want the nodelist to be added as node[pos][0] but this occur what should I do

1 Answers1

1

The way you append to a string is to create a new string with + and assign it.

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

Strings are immutable, so it's impossible for there to be an append method for it.

Mark Ransom
  • 299,747
  • 42
  • 398
  • 622