Có cách nào để hiệu quả lặp qua các giá trị/mục trong từ điển hoạt động trong cả Python 2 và Python 3?Máy phát điện để lặp qua một từ điển thống nhất trong cả Python 2 và 3
Trong Python 2, tôi có thể viết
for x in mydict:
for x in mydict.iterkeys():
for x in mydict.viewkeys():
for x in mydict.itervalues():
for x in mydict.viewvalues():
for x in mydict.iteritems():
for x in mydict.viewitems():
và bằng Python 3, tôi có các khả năng sau:
for x in mydict:
for x in mydict.keys():
for x in mydict.values():
for x in mydict.items():
Vì vậy, tôi có thể lặp qua các phím với for x in mydict
, và rằng công trình trong cả Python 2 và 3. Nhưng có cách nào để lặp qua các giá trị và các cặp khóa-giá trị ('items') hoạt động trên toàn cầu không? Tôi cần nó để viết mã Python có thể chạy trong cả hai phiên bản Python.
(Trên một mặt lưu ý, những trở ngại khác với vòng lặp có thể được bỏ qua một cách dễ dàng, lấy ví dụ:
if sys.version_info.major<3:
from itertools import izip as zip, imap as map
Tuy nhiên, các phương pháp điển không thể được định nghĩa lại một cách dễ dàng như map
và zip
.)
Bất kỳ ý tưởng?
EDIT: Tôi nghĩ bạn muốn nói máy phát điện lặp lại từ điển – jamylak
@jamylak: vâng, cảm ơn. – Daniel