【发布时间】:2020-04-24 16:38:29
【问题描述】:
我正在尝试通过一个名为 message 的列表,这是一个简单的单词并对其进行编码。
我还有一本名为 symbol_code_table 的字典,其中包含单词中每个字母的代码。
类似这样的:
symbol_code_table = {'a': '011', 'b': '10', 'c': '010', 'd': '00', 'n': '11'}
message = "caba"
所以结果会是这样的:
010 011 10 011
下面,我展示了执行此操作的函数
def encode_huff (message , symbol_code_table):
binary_code = ''
for i in message:
if (i in symbol_code_table):
binary_code += symbol_code_table[i]
我想知道是否有另一种方法可以在不必使用for loop 的情况下传递消息
非常感谢您!
【问题讨论】:
-
我不明白你怎么能不使用循环来做到这一点
-
你的代码不会产生你报告的输出,即使你是
return/print()binary_code。空间不见了。 -
在没有循环的情况下执行此操作的唯一方法是 a) 逐行编写循环中执行的每个操作,或 b) vectorize 您的代码。
-
@RoadRunner 不清楚问题是否是“如果没有
for <item> in <iterable>:语法,我该如何完成?”或“我如何在不重复列表的情况下做到这一点?”我在下面的回答解决了第一个问题,而您将其作为第二个阅读。 -
如果你不关心空格,你可以写:
message.translate(str.maketrans(symbol_code_table)).
标签: python list loops for-loop