算法:从整数创建高效的查找表

时间:2014-06-22 09:54:22

标签: python algorithm python-2.7 encoding lookup

我想在Python中创建一个将整数与一系列符号相关联的查找表。 我想要使​​用的符号是小写字母[a-z]和数字[0-9]。

我的目标是用尽可能少的符号来表示大量数字。 我想知道在Python中执行此操作的最有效方法是什么?

1 个答案:

答案 0 :(得分:2)

如果您的整数是正数,连续的,并且从0开始或接近0,请使用列表。否则,请使用字典。如果您的目标值是单个字符,则可以使用字符串而不是列表。

列表(和字符串)在映射序列(0,1,2等)方面效率更高,字典在将不同数字映射到值时效率更高。

将整数映射到单个字符:

targets = "a8B2Vgj4l" # targets[3] -> 'B'

将整数映射到多个字符:

targets = ['foo', 'bar', 'baz', '42andahalf'] # targets[3] -> 'baz'

映射非连续整数:

targets = {42: 'Life', 81: 'Monty Python'}  # targets[82] -> 'Monty Python'