考慮下面的代碼:Lisp風格風格`let`在Python列表內涵語法
>>> colprint([
(name, versions[name][0].summary or '')
for name in sorted(versions.keys())
])
這段代碼的含義是打印字典versions
的元素在其keys
依次遞增,但由於value
是另一個排序列表,僅打印其的第一個元素(「最大」)的摘要。
因爲我熟悉let
從口齒不清,我重寫了上面:
>>> colprint([
(name, package.summary or '')
for name in sorted(versions.keys())
for package in [versions[name][0]]
)]
你認爲這違反了being Pythonic?可以改進嗎?
注意:爲了好奇,colprint
定義爲here。
heh。嘗試成爲lispy是不可寬恕的。 Python儘可能地努力不做任何事情。 – Svante
很難用口齒說話給Parsel; [。 – Tordek
python不會嘗試不像lisp。 GvR自己曾經說過,PYthon和Lisp非常相似,而且差異更爲膚淺。我自己是從一個計劃中退出來的,但是我現在幾乎完全使用python了三年,而且我喜歡第一種方式比第一種方式多。 – Broseph