If键在Python中包含子字符串

2024-04-25 13:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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中有类似于“exist”的东西吗?你知道吗


Tags: key类型data键入returnif条件gh
2条回答

不,没有“exists”运算符。你知道吗

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

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

相关问题 更多 >