Tag: 反向查找

在元组或对象列表上使用Python的列表index()方法?

Python的列表types有一个index()方法,它接受一个参数并返回匹配参数的列表中的第一个项目的索引。 例如: >>> some_list = ["apple", "pear", "banana", "grape"] >>> some_list.index("pear") 1 >>> some_list.index("grape") 3 有没有一种优雅(惯用)的方式来扩展这个复杂的对象,如元组列表? 理想情况下,我希望能够做到这样的事情: >>> tuple_list = [("pineapple", 5), ("cherry", 7), ("kumquat", 3), ("plum", 11)] >>> some_list.getIndexOfTuple(1, 7) 1 >>> some_list.getIndexOfTuple(0, "kumquat") 2 getIndexOfTuple()只是一个假设的方法,它接受一个子索引和一个值,然后返回该子索引给定值的列表项的索引。 我希望 有什么办法来实现这个一般性的结果,使用列表parsing或lambas或类似的“内联”? 我想我可以编写自己的类和方法,但如果Python已经有办法做到这一点,我不想重新发明轮子。

Java有反向查找的HashMap吗?

我的数据是按“键 – 键”格式组织的,而不是“键 – 值”。 这就像一个HashMap,但是我需要在两个方向上进行O(1)查找。 这种types的数据结构是否有名称,并且类似于Java标准库中包含的名称? (或者Apache Commons?) 我可以写我自己的类,基本上使用两个镜像地图,但我宁愿不重新发明轮子(如果这已经存在,但我只是没有寻找合适的期限)。