Czy istnieje sposób na wydajną iterację wartości/pozycji w słowniku, który działa zarówno w Pythonie 2, jak i Pythonie 3?Generatory do równoczesnego powtarzania słownika w Pythonie 2 i 3
W Pythonie 2, mogę napisać
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():
w Pythonie 3, mam następujące możliwości:
for x in mydict:
for x in mydict.keys():
for x in mydict.values():
for x in mydict.items():
Więc mogę iteracyjne nad klucze z for x in mydict
i że prace zarówno w Pythonie 2 i 3. Ale czy istnieje sposób na iterację wartości i par klucz-wartość ("przedmiotów"), które działają powszechnie? Potrzebuję go do napisania kodu Pythona, który można uruchomić w obu wersjach Pythona.
(Na marginesie, inne przeszkody z iteratorów można ominąć łatwo; wziąć na przykład:
if sys.version_info.major<3:
from itertools import izip as zip, imap as map
Jednakże metody słownikowe nie mogą być na nowo łatwo jak map
i zip
.)
Any pomysły?
EDYCJA: Myślę, że chcesz powiedzieć generatory do iteracji nad słownika – jamylak
@jamylak: tak, dziękuję. – Daniel