Tôi có từ điển giống như thế này. . .Python- Cách tìm giá trị trung bình của nhiều giá trị/khóa trong từ điển
CombinedDict = {'Abamectin': [63, 31, 53], 'Difenzoquat metilsulfate': [185, 49, 152], 'Chlorpyrifos': [14, 26, 56], 'Dibutyl phthalate': [25, -17, -18]
v.v. Tổng cộng tôi có 48 phím khác nhau.
Điều tôi đang cố gắng đạt được là trung bình của ba số. Vì vậy, tôi sẽ nhận được một dict trông như thế này. . .
AvgDictName = {'Abamectin': [49], 'Difenzoquat metilsulfate': [128], 'Chlorpyrifos': [32], 'Dibutyl phthalate': [-3] . . .
Tôi đã thử sử dụng dòng này
AvgDictName = dict([(key, float(sum([int(i) for i in values]))/len(values)) for key, values in CombinedDict])
Nhưng tôi nhận được quá nhiều giá trị để giải nén lỗi Bất kỳ ý tưởng? Tôi nghĩ rằng nó cũng có thể được thực hiện bằng cách làm cho dict vào một danh sách và tìm trung bình từ một danh sách bằng cách sử dụng len và tổng lệnh và sau đó chuyển đổi trở lại một dict nhưng tôi không thực sự biết làm thế nào để đi về điều đó. Cảm ơn bạn, tôi có cảm giác điều này dễ dàng.
'.iteritems() 'cho python 2.x – inspectorG4dget
@ inspectorG4dget,' .items() 'thực sự tốt hơn theo nghĩa là" bằng chứng Python 3 ", trừ khi bạn thực sự cần tối ưu hóa cho các danh sách giá trị lớn. –
@ BenHoyt: Đó là công cụ 2to3 dành cho. Tôi có nên quấn tất cả các câu lệnh in của mình trong dấu ngoặc đơn không? – Eric