作者Tiberius (渴望平凡的幸福)
看板Python
標題[閒聊] 人急造反,狗急跳牆
時間Sat Oct 20 02:45:21 2007
Python 也是可以寫得很恐怖的 ...
first =
1
for i
in range(
max(
map(
len, cur_count.itervalues()))):
ret += [
'%s\t%s\t%s' % (
# 各組單項起迄
cur_team_name
if first
else '',
'\t'.join(
map(
lambda k:
'%s\t%s\t%s' %
((cur_count.get(k.
id)
or [])[i:i+
1]
or
[(
'',
'',
'')])[
0], klasses)),
# 小計
reduce(
lambda x, y: x + y[
2],
map(
lambda x: (x[i:i+
1]
or
[(
0,
0,
0)])[
0], cur_count.itervalues()),
0))]
first =
0
想像一下沒有那兩行註解、縮排又亂來一通的時候會變成什麼樣子 ... 囧
Python 濫用 () 的話也可以搞出很恐怖的東西,再舉一個例子:
for (t, player_count)
in (s.query(Team)
.select_from(Team.table.join(Player.table))
.filter_by(klass=k)
.group_by(Team.c.
id)
.add_column(func.count(Player.c.
id))
.order_by(Team.c.code)).
list():
==
呼哈,這些日子寫 py 寫到快掛了 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.63.79
※ 編輯: Tiberius 來自: 59.126.63.79 (10/20 02:46)
推 yungyuc:幹得好,希望我永遠不會寫出這種碼 XD 10/20 05:20
推 yoco315:我也想要寫這種碼 O_Q 10/20 15:09
→ yoco315:但是我寫不出來 orz Python 不夠熟練 10/20 15:10
推 Tiberius:從 1.5.2 開始用的下場就是只知道 map reduce lambda 10/20 21:16
→ Tiberius:等等繼續開發的用 list comprehension 重寫看看好了 ... 10/20 21:18