2008-12-05 32 views
14

Python 2.6基本上是讓轉換爲Python 3更容易的墊腳石。如果它們沒有破壞與語法和類庫的向後兼容性,那麼註定要用於Python 3的許多功能都在2.6中實現。爲什麼Python 2.6沒有設置文字和理解或字典理解?

其中爲什麼沒有設置文字({1, 2, 3}),設置解析({v for v in l})或者dict解析({k: v for k, v in d})?特別是,詞典的理解本來是一個很大的恩惠......我發現自己最近使用了相當醜陋的dict([(k, v) for k, v in d])

有什麼明顯的我錯過了,或者這只是一個功能,沒有削減?

+2

請注意,所有這些功能都已在Python 2.7中實現。 http://docs.python.org/dev/whatsnew/2.7.html – 2012-02-10 00:32:01

回答

10

所有這些都是語法/語法變化。傳統上,這種更改通常是在帶有from __future__ import …語句的Python x.y版本中引入的,並且至少在Python x。(y + 1)版本上實現。這種變化還沒有發生。

從技術上講,我回答了你的「爲什麼」。現在

,如果你的意思是,「爲什麼沒有人走的時候建議,支持和實施一些想在2.X還,即使他們不知道它從從來沒有試圖建議/支持在comp.lang.python或Python-Dev和I backporting這些語法增強功能從來沒有試圖甚至讀取PEP?「,那麼答案也在於你,你可以自己提供答案。

HTH

順便說一句,你不應該使用dict([(k,v) for k,v in d])形式,但dict((k,v) for k,v in d)。更高效。爲什麼創建一箇中間列表?