我有这本字典:
a={'sting1':1,'string2':2,'string3':3,'string4 null':4}
我要删除键为空的项。
output={'sting1':1,'string2':2,'string3':3}
我发现了startwith应用程序,并尝试使用key.find('null')!=-1,但是没有成功
答案 0 :(得分:4)
执行dictionary comprehension
:
print({k:v for k,v in a.items() if not 'null' in k})
如果版本低于2.6:
print(dict((k,v) for k,v in a.iteritems() if not 'null' in k))
请参见iteritems
,而不是items
,这仅在python 2中(所有python 2版本)
感谢@john,“您也可以写成'null',而不是k,有些人会更容易阅读”。
答案 1 :(得分:1)
在Python中,要检查一个字符串是否包含在另一个字符串中,您可以像这样简单地使用in
关键字:
if "null" in "something null bla bla":
# null is in the string
要删除所有包含null的项目,您可以简单地循环遍历它们,检查它们是否包含null,如果存在则将其删除:
for key in list(a.keys()):
if "null" in key:
del a[key]
请注意,我们必须创建所有键的列表,否则在迭代时无法从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
答案 2 :(得分:0)
这也可以就地完成:
l = []
for k in a:
if 'null' in k:
l.append(k)
for k in l:
del a[k]
是否:
b = {}
for k in a:
if 'null' not in k:
b[k] = a[k]