#Ruby Code
si=1
gw=0
linkedNodes=[{1=>2},{1=>0}]
puts "found node" if linkedNodes.include?({si=>gw})
我正在尝试找出是否有办法在Python中执行类似的操作。我正在搜索散列数组以查找完整散列上的匹配项,使用
在Ruby中这非常容易做到include?()
方法。我发现了很多有关按键或按值搜索哈希表的信息,但我试图匹配整个哈希(键和值)。我读到有关使用lambda的过滤器选项的信息,但是当我开始获取异常并尝试使用try:except:blocks时,很快就变成了一片混乱。
答案 0 :(得分:2)
假设您的意思是linkedNodes = [{1 => 2}, {1 => 0}]
,这是对python的直译:
>>> si=1
>>> gw=0
>>> linkedNodes = [{1:2},{1:0}]
>>> if {si:gw} in linkedNodes:
... print("found node")
#⇒ found node
答案 1 :(得分:0)
普通或花园品种Python没有这样的东西。您将分两步进行操作:首先检查密钥,然后检查值:
if si in linkedNodes and linkedNodes[si] == gw:
# do whatever
and
短路,因此如果si
不是linkedNodes
的键,则不会评估linkedNodes[si] == gw
;在这种情况下,尝试访问该元素不会出错。
如果要这样做,可以创建一个dict
子类,其中in
的行为方式(或可选地)。我将作为练习来离开。