作者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)
1F:推 yungyuc:干得好,希望我永远不会写出这种码 XD 10/20 05:20
2F:推 yoco315:我也想要写这种码 O_Q 10/20 15:09
3F:→ yoco315:但是我写不出来 orz Python 不够熟练 10/20 15:10
4F:推 Tiberius:从 1.5.2 开始用的下场就是只知道 map reduce lambda 10/20 21:16
5F:→ Tiberius:等等继续开发的用 list comprehension 重写看看好了 ... 10/20 21:18