dict1=({"EMP$$1":1,"EMP$$2":2,"EMP$$3":3})
如何使用python
检查字典中是否存在EMP dict1.get("EMP##") ??
答案 0 :(得分:21)
目前还不完全清楚你想做什么。
循环浏览dict
选择键中的键
>>> for key in dict1:
... if key.startswith("EMP$$"):
... print "Found",key
...
Found EMP$$1
Found EMP$$2
Found EMP$$3
您可以使用列表推导来获取匹配的所有值:
>>> [value for key,value in dict1.items() if key.startswith("EMP$$")]
[1, 2, 3]
如果您只想知道密钥是否匹配,可以使用the any()
function:
>>> any(key.startswith("EMP$$") for key in dict1)
True
答案 1 :(得分:6)
这种做法让我觉得与字典的意图相反。
字典由具有与之关联的值的散列键组成。这种结构的好处是它提供了非常快速的查找(大约为O(1))。通过搜索键,你就是在否定这种好处。
我建议你重组字典。
dict1 = {"EMP$$": {"1": 1, "2": 2, "3": 3} }
然后,找到“EMP $$”就像
一样简单if "EMP$$" in dict1:
#etc...
答案 2 :(得分:2)
您需要更加具体地了解自己想要做的事情。但是,假设您提供的词典:
dict1={"EMP$$1":1, "EMP$$2":2, "EMP$$3":3}
如果您想在尝试请求之前知道某个特定密钥是否存在,您可以:
dict1.has_key('EMP$$1')
True
返回True
,dict1
的密钥为EMP$$1
。
您还可以忘记检查密钥并依赖dict1.get()
的默认返回值:
dict1.get('EMP$$5',0)
0
默认情况下返回0
,因为dict1
没有密钥EMP$$5
。
以类似的方式,您还可以使用`try / except /结构来捕获和处理错过的密钥:
try:
dict1['EMP$$5']
except KeyError, e:
# Code to deal w key error
print 'Trapped key error in dict1 looking for %s' % e
这个问题的其他答案也很棒,但我们需要更多信息才能更准确。
答案 3 :(得分:0)
没有办法像这样匹配字典键。我建议你重新考虑这个问题的数据结构。如果这需要更快,你可以使用类似后缀树的东西。
答案 4 :(得分:0)
您可以使用---------------------------------------------------------------------------
WebDriverException Traceback (most recent call last)
<ipython-input-297-41c52a12ba91> in <module>()
----> 1 browser.get(asd)
/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in get(self, url)
331 Loads a web page in the current browser session.
332 """
--> 333 self.execute(Command.GET, {'url': url})
334
335 @property
/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
319 response = self.command_executor.execute(driver_command, params)
320 if response:
--> 321 self.error_handler.check_response(response)
322 response['value'] = self._unwrap_value(
323 response.get('value', None))
/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
240 alert_text = value['alert'].get('text')
241 raise exception_class(message, screen, stacktrace, alert_text)
--> 242 raise exception_class(message, screen, stacktrace)
243
244 def _value_or_default(self, obj, key, default):
WebDriverException: Message: unknown error: unsupported protocol
(Session info: chrome=71.0.3578.98)
(Driver info: chromedriver=2.45.615355 (d5698f682d8b2742017df6c81e0bd8e6a3063189),platform=Mac OS X 10.13.6 x86_64)
字符串运算符检查项目是否在另一个字符串中。 dict1迭代器返回密钥列表,因此您要检查每个dict1.key的“ EMP $$”。
in