如果字典中包含关键字,则删除它

2024-10-02 08:16:19 发布

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

我有本字典:

a={'sting1':1,'string2':2,'string3':3,'string4 null':4}

我想删除关键字包含单词null的项。在

^{pr2}$

我找到了startswith应用程序,并尝试使用键。查找('null')!=-1,但没有成功


Tags: 应用程序字典关键字单词nullstartswithpr2string2
3条回答

在Python中,要检查某个字符串是否包含在另一个字符串中,只需使用in关键字,如下所示:

if "null" in "something null bla bla":
    # null is in the string

要删除所有包含null的项,您可以简单地循环它们,检查它们是否包含null,如果包含null则将其删除:

^{pr2}$

注意,我们必须创建一个包含所有键的列表,否则我们不能在迭代时从dict中删除项。在

如果要在删除项的情况下创建新dict,可以使用dict comprehension作为另一个答案,或者只使用一个普通的旧for循环:

output = {}
for key, value in a.items():
    if "null" not in key:
        # key is ok => add to output
        output[key] = value

也可以就地完成:

l = []
for k in a:
    if 'null' in k:
        l.append(k)

for k in l:
    del a[k]

是否:

^{pr2}$

dictionary comprehension

print({k:v for k,v in a.items() if not 'null' in k})

如果版本低于2.6:

^{pr2}$

请参见iteritems,而不是{},这只在python2中(所有python2版本)

感谢@john,“你也可以写if'null'而不是一些人觉得更容易阅读的k”。在

相关问题 更多 >

    热门问题