2014-01-12 9 views
29

Wie kann ich die folgende Funktionalität kompatibel mit früheren Versionen von Python als Python 2.7 machen?Alternative zu dict Verständnis vor Python 2.7

gwfuncs = [reboot, flush_macs, flush_cache, new_gw, revert_gw, send_log]  
gw_func_dict = {chr(2**i): func for i, func in enumerate(gwfuncs[:8])} 

Antwort

60

Verwendung:

gw_func_dict = dict((chr(2**i), func) for i, func in enumerate(gwfuncs[:8])) 

Das ist die Funktion dict() mit einem Generator-Expression ist die Herstellung (key, value) Paaren.

Oder, um es allgemein zu setzen, ein dict Verständnis der Form:

{key_expr: value_expr for targets in iterable <additional loops or if expressions>} 

immer kompatibel mit Python < 2.7 unter Verwendung gemacht werden:

dict((key_expr, value_expr) for targets in iterable <additional loops or if expressions>)