如果key包含在Python
问题描述:
子我有更多不同类型的字典键(有没有必要键入数值,太)如果key包含在Python
'PL-1/KK-1/FO-1'
'PL-1/KK-2/GH-3'
'PL-1/KK-2'
'PL-1/KK-1/FO-4'
我需要一个条件
if exist (key.split('/')[2])
do something
return data
else:
do something
return data
所需的输出: 在第一个条件中,除'PL-1/KK-2'
之外的所有密钥都可以输入。
Python中是否存在类似'存在'的东西?
答
不,没有'存在'操作符。
在你的情况应该只是测试斜线:
if key.count('/') >= 2:
# ...
如果你需要有钥匙,商店的元器件和测试长度:
components = key.split('/')
if len(components) >= 2:
# ...
答
def has_key(i_dict, i_filter):
return any(k for k in i_dict.iterkeys() if i_filter(k))
# be it a dict called my_dict
# you could call it like
has_key(my_dict, lambda x: x.count("/") == 2)
# or
has_key(my_dict, lambda x: len(x.split("/"))==2)
这里有一个小测试
>>> my_dict = {"a":1,"c":3}
>>> has_key(my_dict, lambda k:k=="a")
True
>>> has_key(my_dict, lambda k:k=="c")
True
>>> has_key(my_dict, lambda k:k=="x")
False
+0
OP认为在每个密钥上做'某事' – RomanPerekhrest
+0
再次阅读后,我认为你是对的。 “人类语言”似乎表明,虽然“代码”并没有指出这一点。 –
如果我们有这个键''PL-1/KK-2'' '? – RomanPerekhrest
它不可能是那个钥匙。这是已解析的XML文件。 – jovicbg