我有 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/