Skip to main content
 首页 » 编程设计

Python处理反向查找

2025年05月04日13thcjp

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

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