作者whitefur (白毛)
看板Python
标题Re: [问题] 语法 - 类似倒装句
时间Sat Sep 15 20:13:18 2012
※ 引述《tsaiminghan (nahgnimiast)》之铭言:
: 我看别人写的py档,有一种语法
: 大约长得像下面这样,
: [ print x for x in range(1, 6) ]
: 像是把for回圈反过来写,请问这种用法
: 要google时,要用什麽关键字才找得到资料
: 或是有人能说明使用的时机和限级。谢谢
概念其实就是数学上的「集合」
有一集合 A = {1, 2, 3} 与 函数f(x) = 2x+1
试求{f(x) | x 属於 A }
= {f(1), f(2), f(3)}
= {3, 5, 7}
把这个概念用在list comprehension上
可以把list想成一个数学上的集合
EX:
list_b = [abs(x) for x in range(-4, 0)]
print(list_b)
→ [4, 3, 2, 1]
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.232.214.245
1F:→ tsaiminghan:所以这写法只能用在list上吗? 09/15 20:56
2F:→ darkgerm:改成写小括号就会变 generator 09/15 20:58
3F:→ buganini:也可以写{x:y for x ...} dict comprehensive 09/15 21:32
4F:→ buganini:不过这个和generator好像在某个版本以前不能用 09/15 21:32
5F:→ kdjf:那是py3k backport回去的吧(欢迎直接开始用python3) 09/16 09:04
6F:→ tsaiminghan:谢谢 09/17 23:25