我有一个循环:
for x in range(0, len(temp)):
if temp[val] == char:
print (" %-9r | %10d | %12s" % (char, frequency, huffmanCode[char]))
val += 1
它应该做的是应该在临时列表中搜索char变量,如果找到它,它将被显示。
例如,如果我输入" google"那么输出应该是:
Character | Frequency | Huffman Code
------------------------------------
'g' | 2 | 0
'o' | 2 | 11
'o' | 2 | 11
'g' | 2 | 0
'l' | 1 | 101
'e' | 1 | 100
但由于某种原因,它没有显示任何东西。我如何搜索我的整个临时列表中的字符?
答案 0 :(得分:2)
你应该寻找x而不是val的索引吗?如果没有看到您的整个代码/这些变量意味着什么,那么很难说清楚。但是如果temp [val]最初不等于char,它将永远不会增加,因此结果永远不会改变。
试试这个吗?
for x in range(0, len(temp)):
if temp[x] == char:
print (" %-9r | %10d | %12s" % (char, frequency, huffmanCode[char]))
val += 1
答案 1 :(得分:1)
您可以使用数组对象中的count函数,它将返回项目在列表中显示的次数,如果方法返回0,则可以跳过打印。 像这样:
if temp.count(char) > 0 :
print (" %-9r | %10d | %12s" % (char, frequency, huffmanCode[char]))