如果key包含Python中的子字符串

时间:2017-09-15 09:39:51

标签: python dictionary if-statement

我在dict中有一个更不同类型的键(也不需要键入值)

'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中是否存在类似“存在”的内容?

2 个答案:

答案 0 :(得分:3)

不,没有'存在'操作

在你的情况下,你应该只测试斜杠:

if key.count('/') >= 2:
    # ...

如果您需要密钥的组件,请存储并测试长度:

components = key.split('/')
if len(components) >= 2:
    # ...

答案 1 :(得分: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