【python】dict多种方法实现去除字典value为0 的元素
题目
dict多种方法实现去除字典value为0 的元素
栗子
a = { a: 1, b: 0, c: 3, d: 4, e: 5}
结果
a = { a: 1, c: 3, d: 4, e: 5}
code
方法一:普通方法
# 字典:value为0的移除 def removeDict(): a = { a: 1, b: 0, c: 3, d: 4, e: 5} # 方法1 res = { } for key, value in a.items(): if value != 0: res[key] = value return res if __name__ == __main__: result = removeDict() print(result)
结果:
{ a: 1, c: 3, d: 4, e: 5}
方法二:pop方法
from copy import deepcopy # 字典:value为0的移除 def removeDict(): a = { a: 1, b: 0, c: 3, d: 4, e: 5} # 方法2 res = deepcopy(a) for key, value in res.items(): if value == 0: a.pop(key) return a if __name__ == __main__: result = removeDict() print(result)
结果:
{ a: 1, c: 3, d: 4, e: 5}
方法三:del方法
from copy import deepcopy # 字典:value为0的移除 def removeDict(): a = { a: 1, b: 0, c: 3, d: 4, e: 5} # 方法3 res = deepcopy(a) for key, value in res.items(): if value == 0: del a[key] return a if __name__ == __main__: result = removeDict() print(result)
结果:
{ a: 1, c: 3, d: 4, e: 5}
方法四:字典生成式
def removeDict(): return { key: value for key, value in a.items() if value != 0} if __name__ == __main__: result = removeDict() print(result)
结果:
{ a: 1, c: 3, d: 4, e: 5}
通过上述四种方式实现了字典中value为0的元素删除,哪种方式更优需要自己感悟,这里不做过多的阐述;
汇总
from copy import deepcopy # 字典:value为0的移除 def removeDict(): a = { a: 1, b: 0, c: 3, d: 4, e: 5} # 方法1 # b = {} # for key, value in a.items(): # if value != 0: # b[key] = value # print(b) # 方法2 # b = deepcopy(a) # for key, value in b.items(): # if value == 0: # a.pop(key) # print(a) # 方法3 # b = deepcopy(a) # for key, value in b.items(): # if value == 0: # del a[key] # print(a) # 方法4 res = { key: value for key, value in a.items() if value != 0} print(res) if __name__ == __main__: removeDict()