如何解决如何在python字典中进行重复键的总和?
我知道 python 字典不保存重复值,如果有的话会修改。我的问题是,我们如何将这些重复值加在一起?
这是我的代码:
class ChoreTracker:
def __init__(self):
self.chores = {}
def add_hours(self,chores,time):
self.chores.update({chores:time})
def print_summary(self):
for i,(chore,time) in enumerate(self.chores.items()):
print(f"{chore}:",time)
tracker = ChoreTracker()
tracker.add_hours('sweeping',0.75)
tracker.add_hours('laundry',0.5)
tracker.add_hours('working',6)
tracker.add_hours('mopping',0.5)
tracker.add_hours('laundry',1)
tracker.add_hours('working',5.5)
tracker.print_summary()
我的输出:
laundry: 1
working: 5.5
mopping: 0.5
我想要的:
laundry: 1.50 hours
working: 11.50 hours
mopping: 0.50 hours
TOTAL: 14.25 hours
working 是重复键。我想添加它而不是仅仅修改值:working = 6 + 5.5
提前致谢:)
解决方法
首先检查密钥是否存在。如果是,请添加时间。
import numpy as np
import cv2
faceCascade = cv2.CascadeClassifier('Cascades/haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height
ret,img = cap.read()
img = cv2.flip(img,-1)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
while True:
if ret == False:
continue
faces = faceCascade.detectMultiScale(
gray,scaleFactor=1.2,minNeighbors=5,minSize = (20,20)
)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0),2)
roi_gray = gray[y:y+h,x:x+w]
roi_color = img[y:y+h,x:x+w]
cv2.imshow('video',img)
k = cv2.waitKey(30) & 0xff
if k == 27: # pressing esc in order to quit
break
cap.release()
cap.destroyAllWindows()
,
您可以使用 collections.Counter
,它是为数数事物量身定制的。
deleteKeys = []
for item in a_dict:
if a_dict[item] == []:
deleteKeys.append(item)
for i in deleteKeys:
del a_dict[i]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。