Tôi muốn kiểm tra xem tất cả các giá trị, tức là các giá trị tương ứng với tất cả các phím trong từ điển là 0. Có cách nào để thực hiện nó mà không có vòng lặp không? Nếu thế thì sao?Làm thế nào để kiểm tra xem tất cả các giá trị của một từ điển là 0, bằng Python?
Trả lời
sử dụng all()
:
all(value == 0 for value in your_dict.values())
all
lợi nhuận True
nếu tất cả các yếu tố của trao iterable là đúng sự thật.
Bạn có thể sử dụng phương pháp any(), về cơ bản nó kiểm tra các tham số boolean, nhưng 0 sẽ hoạt động như Sai trong trường hợp này và bất kỳ số nào khác là True. Hãy thử mã này:
dict1 = {"a": 0, "b": 1}
dict2 = {"a": 0, "b": 0}
print not any(dict1.itervalues())
print not any(dict2.itervalues())
Output:
False
True
Edit2: một sidenote/thận trọng, kêu gọi bất kỳ() với danh sách trống của các yếu tố sẽ trở lại False.
Với all
:
>>> d = {1:0, 2:0, 3:1}
>>> all(x==0 for x in d.values())
False
>>> d[3] = 0
>>> all(x==0 for x in d.values())
True
Không có vấn đề cho dù bạn sử dụng any
hoặc all
, việc đánh giá sẽ được lười biếng. all
trả về False
trên giá trị giả đầu tiên mà nó gặp phải. any
trả về True
trên giá trị thực tế đầu tiên mà nó gặp phải.
Do đó, not any(d.values())
sẽ cung cấp cho bạn kết quả tương tự cho từ điển mẫu mà tôi đã cung cấp. Nó ngắn hơn một chút so với phiên bản all
với máy phát hiểu. Cá nhân, tôi vẫn thích các biến thể all
tốt hơn bởi vì nó thể hiện những gì bạn muốn mà không cần người đọc phải thực hiện sự phủ định logic trong đầu.
Có một vấn đề nữa với việc sử dụng any
đây, mặc dù:
>>> d = {1:[], 2:{}, 3:''}
>>> not any(d.values())
True
Từ điển không chứa giá trị 0, nhưng not any(d.values())
sẽ trở lại True
bởi vì tất cả các giá trị là falsy, tức là bool(value)
lợi nhuận False
cho một danh sách trống , từ điển hoặc chuỗi.
Tóm lại: số khả năng đọc, rõ ràng, sử dụng giải pháp all
.
'không phải bất kỳ' sẽ đánh giá là True nếu tất cả các giá trị là _falsey_, vì vậy nó khác với kiểm tra nếu tất cả các giá trị bằng với' 0'. –
Bạn cũng có thể làm điều đó theo cách khác sử dụng bất kỳ:
>>> any(x != 0 for x in somedict.values())
Nếu nó trả về True, sau đó tất cả các phím không 0, nếu không tất cả các phím 0
- 1. Làm thế nào để tra cứu/kiểm tra một giá trị từ điển bằng phím
- 2. Làm thế nào để kiểm tra xem một giá trị tồn tại trong một cuốn từ điển (python)
- 3. Python: Kiểm tra xem tất cả các từ điển trong danh sách có trống không
- 4. kiểm tra giá trị boolean từ điển.
- 5. Kiểm tra xem bất kỳ giá trị nào của từ điển có khớp với điều kiện
- 6. Kiểm tra xem tất cả các giá trị trong một mảng có khối không bằng nhau là
- 7. Làm thế nào để in các cặp khóa-giá trị của một từ điển trong python
- 8. Kiểm tra xem tất cả các giá trị đã được đọc thành công từ std :: istream
- 9. Làm thế nào để kiểm tra xem một chuỗi chứa tất cả các ký tự của một từ
- 10. Kiểm tra xem một giá trị có bằng bất kỳ giá trị nào trong một mảng
- 11. Làm thế nào để kiểm tra xem tất cả các giá trị trong các cột của một ma trận có khối u đều giống nhau không?
- 12. Python: Từ điển hợp nhất các từ điển với tổng() của các giá trị
- 13. Làm cách nào để tổng hợp tất cả các giá trị trong từ điển?
- 14. PHP: Kiểm tra xem tất cả các giá trị trong một mảng có nhỏ hơn x
- 15. Làm cách nào để kiểm tra xem chuỗi có giá trị bằng số trong Python không?
- 16. Làm thế nào để thay thế các giá trị trống (null) bằng 0 cho tất cả các bản ghi?
- 17. Kiểm tra xem tất cả các giá trị trong mảng có giống nhau không
- 18. Chia các giá trị của hai từ điển trong python
- 19. Cách nhanh nhất để kiểm tra xem tất cả các giá trị trong một mảng có phải là số không?
- 20. Làm thế nào để kiểm tra xem Python của tôi có tất cả các gói cần thiết không?
- 21. In tất cả các giá trị duy nhất trong từ điển Python
- 22. Làm cách nào để kiểm tra xem nhiều biến có bằng cùng một giá trị không?
- 23. NUnit kiểm tra tất cả các giá trị của một mảng (với sự khoan dung)
- 24. php kiểm tra xem mảng có chứa tất cả các giá trị mảng từ một mảng khác không
- 25. Kiểm tra tất cả các giá trị mảng cùng một lúc
- 26. Làm thế nào để kiểm tra một biến giá trị null nếu nó là một chuỗi?
- 27. Làm thế nào để kiểm tra tất cả các kết hợp của các thông số xấu?
- 28. Làm thế nào để sắp xếp một từ điển Python theo giá trị?
- 29. Nếu tất cả các bit là 0, giá trị của điểm nổi IEEE là gì?
- 30. Thay thế tất cả các giá trị trong ma trận <0.1 bằng 0
Làm sao bạn làm điều đó với một vòng lặp? –
i lặp qua từ điển và kiểm tra tất cả các giá trị tức là các giá trị tương ứng với tất cả các khóa nếu ngay cả một giá trị không đúng, tôi đã thay đổi giá trị cờ và thoát ra khỏi vòng lặp. –