Python处理反向查找

标签 python python-2.7

我有 20 个字符串匹配 20 个整数。所有整数和字符串都是唯一的。我正在考虑但想避免创建两个词典。一本字典以字符串为索引,一本字典以整数为索引。

  • 我应该如何处理这种情况?

我创建了两个列表。一个包含字符串,另一个包含整数。我正在考虑构建两个功能。一个函数将产生一个字符串。另一个函数将产生一个整数。如果生成的参数是整数或字符串,另一种方法是通过分支将它们组合成一个函数。

  • 这与字典有何可比性?会不会很占cpu? (这个函数每天会运行百万次)
  • 我是否应该只创建一个元组列表,这些元组是 (string, int) 然后 创建两个字典,一个映射到列表位置,另一个 要列出位置的字符串?这将是最佳方式吗?

我没有很多元素,所以我可以牺牲一些内存。

请解释最佳方法并解释为什么它是最好的。

谢谢。

最佳答案

为什么不使用 1 个双向映射的字典?

ints = list(range(10))
strs = [str(x) for x in ints]
d = dict(zip(ints,strs))
d.update(zip(strs,ints))

print repr(d[1])   # '1'
print repr(d['1']) # 1

既然您有唯一的字符串和唯一的整数,那么这两个集合的并集也应该是一个唯一的列表,其中包含其他两个集合的所有元素。把它们都放在字典里应该没问题

关于Python处理反向查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12938002/

相关文章:

java - 我怎样才能保护自己免受 zipper 炸弹的伤害?

python - Pandas:按日期字符串对数据框进行排序而不进行转换

python - BeautifulSoup find_all() 是否保留标签顺序?

python - ,= 运算符

python - .pdbrc 文件中的断点命令

python - 使用 s.loc 和 s.first_valid_index() 时出现 KeyError

python字符串在文本文件中查找和替换

python - 如果其他 'better' 值存在于其他地方,则替换数据框列中的值

python - 从mysql到reportlab的多个值

python - 给定三个坐标点,如何检测它们之间的角度何时超过 180 度?