Giả sử tôi có một từ điển trong đó các phím ánh xạ cho các số nguyên như:
d = {'key1': 1,'key2': 14,'key3': 47}
Có một cách tối giản về mặt cú pháp để trả về tổng của các giá trị trong ____ 13 13.e.e.
sum[d.values[]]
4 trong trường hợp này?
Martineau
Huy hiệu vàng 116K2525 gold badges161 silver badges287 bronze badges
hỏi ngày 2 tháng 2 năm 2011 lúc 23:01Feb 2, 2011 at 23:01
2
Như bạn mong đợi:
sum[d.values[]]
Đã trả lời ngày 2 tháng 2 năm 2011 lúc 23:02Feb 2, 2011 at 23:02
Phihagphihagphihag
270K68 Huy hiệu vàng442 Huy hiệu bạc465 Huy hiệu Đồng68 gold badges442 silver badges465 bronze badges
5
Trong Python 2, bạn có thể tránh tạo một bản sao tạm thời của tất cả các giá trị bằng cách sử dụng phương thức từ điển
sum[d.values[]]
5, trả về một trình lặp của các khóa của từ điển:sum[d.itervalues[]]
Trong Python 3, bạn chỉ có thể sử dụng
sum[d.values[]]
6 vì phương pháp đó đã được thay đổi để làm điều đó [và sum[d.values[]]
5 đã bị xóa vì nó không còn cần thiết nữa].Để làm cho việc viết mã độc lập phiên bản dễ dàng hơn, luôn lặp lại các giá trị của các khóa của từ điển, một hàm tiện ích có thể hữu ích:
import sys
def itervalues[d]:
return iter[getattr[d, ['itervalues', 'values'][sys.version_info[0]>2]][]]
sum[itervalues[d]]
Đây thực chất là những gì mô -đun
sum[d.values[]]
8 của Benjamin Peterson làm.Đã trả lời ngày 2 tháng 2 năm 2011 lúc 23:18Feb 2, 2011 at 23:18
Martineaumartineaumartineau
Huy hiệu vàng 116K2525 gold badges161 silver badges287 bronze badges
1
hỏi ngày 2 tháng 2 năm 2011 lúc 23:01
Như bạn mong đợi:
Đã trả lời ngày 2 tháng 2 năm 2011 lúc 23:02Feb 2, 2011 at 23:04
vz0vz0vz0
Phihagphihag7 gold badges40 silver badges75 bronze badges
d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum[d[item] for item in d]
print[sum1]
270K68 Huy hiệu vàng442 Huy hiệu bạc465 Huy hiệu Đồng
Trong Python 2, bạn có thể tránh tạo một bản sao tạm thời của tất cả các giá trị bằng cách sử dụng phương thức từ điển
sum[d.values[]]
5, trả về một trình lặp của các khóa của từ điển:Jul 12, 2018 at 15:59
Trong Python 3, bạn chỉ có thể sử dụng
sum[d.values[]]
6 vì phương pháp đó đã được thay đổi để làm điều đó [và sum[d.values[]]
5 đã bị xóa vì nó không còn cần thiết nữa].
Để làm cho việc viết mã độc lập phiên bản dễ dàng hơn, luôn lặp lại các giá trị của các khóa của từ điển, một hàm tiện ích có thể hữu ích:
reduce[lambda x,y:x+y,d.values[]]
Đây thực chất là những gì mô -đun
sum[d.values[]]
8 của Benjamin Peterson làm.Đã trả lời ngày 2 tháng 2 năm 2011 lúc 23:1822 gold badges50 silver badges89 bronze badges
MartineaumartineauJan 8, 2019 at 5:12
0
Chắc chắn có. Đây là một cách để tổng hợp các giá trị của từ điển.
>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum[d.values[]]
62
d = {'key1':1,'key2':14,'key3':47}
values = d.values[]
#Return values of a dictionary
total = sum[values]
print[total]
Đã trả lời ngày 2 tháng 2 năm 2011 lúc 23:04Dec 24, 2020 at 4:11
sum[d.values[]]
9- 31.7K7 Huy hiệu vàng40 Huy hiệu bạc75 Huy hiệu Đồng
bạn có thể làm điều đó bằng cách sử dụng vòng lặp choMar 8, 2019 at 8:35
Đã trả lời ngày 12 tháng 7 năm 2018 lúc 15:59Behlul Valiyev
Tôi cảm thấy
9 là cách hiệu quả nhất để có được số tiền.1 gold badge1 silver badge5 bronze badgessum[d.values[]]
Bạn cũng có thể thử chức năng giảm để tính tổng cùng với biểu thức Lambda:
Nick
d = {'key1': 1,'key2': 14,'key3': 47}
sum[list[d.values[]]]
Huy hiệu vàng 134K22
Đã trả lời ngày 8 tháng 1 năm 2019 lúc 5:12Dec 13, 2019 at 10:17
Sử dụng SUM [] để tổng các giá trị trong từ điển.Reza
Gọi dict.values [] để trả về các giá trị của một dictory từ điển. Sử dụng tổng [giá trị] để trả về tổng của các giá trị từ bước trước.1 silver badge7 bronze badges
2
Đã trả lời ngày 24 tháng 12 năm 2020 lúc 4:11
d = {'data': 100, 'data2': 200, 'data3': 500}
total = 0
for i in d.values[]:
total += i
"D" -> Biến từ điển của bạn
Đã trả lời ngày 8 tháng 3 năm 2019 lúc 8:35Apr 9, 2020 at 3:51
2
Behlul Valiyevbehlul Valiyev
//trinket.io/python/a8a1f25353
sum[d.values[]]
0Huy hiệu vàng 611 Huy hiệu bạc5 Huy hiệu đồng
//trinket.io/python/5fcd379536
sum[d.values[]]
1Câu trả lời của Phihag [và những câu tương tự] sẽ không hoạt động trong Python3.May 12, 2021 at 11:54
Cho Python 3:nemo
Cập nhật! Có những lời phàn nàn rằng nó không hoạt động! Tôi chỉ đính kèm một ảnh chụp màn hình từ thiết bị đầu cuối của tôi. Có thể là một số không phù hợp trong các phiên bản, v.v.3 gold badges20 silver badges25 bronze badges
Đã trả lời ngày 13 tháng 12 năm 2019 lúc 10:17
Example:
sum[d.values[]]
2
Rezareza
Huy hiệu đồng 1471 Bạc7 Huy hiệu Đồng1 gold badge9 silver badges13 bronze badges
Bạn có thể xem xét 'cho vòng lặp' cho điều này:Mar 1, 2020 at 14:06
1