Re: [閒聊] 人急造反,狗急跳牆
這兩篇寫下來不知道算不算灌水文 XD
總之這套外表樸實到不行,原始碼看起來嚇死人的東西
今天順利地在中興大學的運動會印了一疊檢錄表跟獎狀,算是沒有丟臉wwwwwww
※ 引述《Tiberius (渴望平凡的幸福)》之銘言:
: 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
first = 1
for i in range(max([len(x) for x in cur_count.itervalues()])):
ret += ['%s\t%s\t%s' % (
# 隊伍名稱
cur_team_name if first else '',
# 所屬各組單項起迄
'\t'.join(['%s\t%s\t%s' %
(cur_count.get(k.id, [])[i:i+1] or [('', '', '')])[0]
for k in klasses]),
# 小計
sum([(x[i:i+1] or [(0, 0, 0)])[0][2]
for x in cur_count.itervalues()]))]
first = 0
最近的心得:
1. List comprehension 可能需要多打一些字, 可能可以省一些字
不過幾乎一定「比較容易看懂」
2. Python 只要用了 () 就可以在某種程度上無視縮排了
如果搭配 [ x for x in y if z ] 寫法或 lambda 所提供的邏輯能力 ...... (惡寒)
3. 如果您跟小弟一樣愛用 vim 的話, 讓 vim 凸顯內建函式名稱是個不錯的選擇
可以避免不小心蓋掉內建函式以致囧爆的情形不斷發生
因為 id, list, len 這種東西實在太容易在無意間拿來當暫存變數了 ... (我啦)
而且像 id 這種資料庫欄位, 凸顯一下應該也是好事 (咦)
只要在 .vimrc 加入下面這行即可:
let python_highlight_builtins = 1
或者更進一步,連內建 Exception 名稱、數字、不小心混用 Tab/Space 也凸顯:
let python_highlight_all = 1
(詳情請洽 VIM 的 syntax/python.vim )
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.63.79
※ 編輯: Tiberius 來自: 59.126.63.79 (10/27 22:56)
推
10/28 10:24, , 1F
10/28 10:24, 1F
→
10/28 10:24, , 2F
10/28 10:24, 2F
推
10/29 01:07, , 3F
10/29 01:07, 3F
推
10/29 08:32, , 4F
10/29 08:32, 4F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章