2009-06-18 47 views

回答

17

很難提高對Python documentation

鍵和值指的是這個非隨機的,不同的Python實現不同而不同,取決於插入和刪除的字典的歷史任意順序列出。如果items(),keys(),values(),iteritems(),iterkeys()itervalues()被調用而不對字典進行中間修改,則列表將直接對應。這允許使用zip(): pairs = zip(d.values(), d.keys()).創建(value, key)對,iterkeys()itervalues()方法具有相同的關係:pairs = zip(d.itervalues(), d.iterkeys())爲成對提供相同的值。創建同一列表的另一種方式是pairs = [(v, k) for (k, v) in d.iteritems()]

因此,簡而言之,「是」與你不得修改字典在您的電話之間的keys()和您的來電values()的警告。

+0

完美即時通訊這樣一個白癡。我完全錯過了這一點。 :( – UberJumper 2009-06-18 12:46:33

1

是的,他們會

就看到Python doc的DOC:

鍵和值指的是這個非隨機的,不同的Python實現不同而不同,並取決於字典的任意順序排列插入和刪除的歷史。如果調用items(),keys(),values(),iteritems(),iterkeys()和itervalues()而不對字典進行中間修改,則列表將直接對應。做

最好的辦法還是使用dict.items()

1

從Python 2.6的文檔:

鍵和值指的是這個非隨機的任意順序排列,因Python實現而異,並取決於字典的插入和刪除歷史。如果items(),keys(),values(),iteritems(),iterkeys()itervalues()被調用而不對字典進行中間修改,則列表將直接對應。這允許使用zip(): pairs = zip(d.values(), d.keys())創建(值,鍵)對。iterkeys()itervalues()方法的關係相同:pairs = zip(d.itervalues(), d.iterkeys())爲配對提供相同的值。另一種創建相同列表的方法是pairs = [(v, k) for (k, v) in d.iteritems()]

我已經超過99%了,肯定的是Python 3.0也是如此。

+0

不需要推測Python 3.0。文檔在這裏:http://docs.python.org/3.0/library/stdtypes.html#dictionary-view-objects和肯定。 – 2009-06-18 12:41:44