三元表示式 result='gt' if 1>3 else 'lt' 如果條件為真,把if前面的值賦值給變數,否則把else後面的值賦值給變數。
以上是官方文件。5.1.3. List Comprehensions(列表解析式)
https://docs.python.org/3.3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator
官方文件對於三元表示式(三目運算子)(Is there an equivalent of C’s ”?:” ternary operator?
https://www.cnblogs.com/liuye-micky/p/6937900.html
(1)三元運算
result='gt' if 1>3 else 'lt'
print result
理解:如果條件為真,把if前面的值賦值給變數,否則把else後面的值賦值給變數。
根據上述解釋,下面的例子中三元表示式的部分為(x for x
in
a
)if
x
%
2
=
=0,後面的部分,前面的部分x for x
in
a是
列表解析式。
https://www.cnblogs.com/huchong/p/9328687.html
>>> a
=
[
12
,
3
,
4
,
6
,
7
,
13
,
21
]
>>> newList
=
[x forx
in
a]
>>> newList
[
12
,
3
,
4
,
6
,
7
,
13
,
21
]
>>> newList2
=
[x for x
in
a
if
x
%
2
=
=
0
]
>>> newList2
[
12
,
4
,
6
]
https://www.cnblogs.com/Nicholas0707/p/8908009.html
Python之路(第十篇)迭代器協議、for迴圈機制、三元運算、列表解析式、生成器
https://www.cnblogs.com/liu-shuai/p/6098227.html
列表解析
根據已有列表,高效建立新列表的方式。
列表解析是Python迭代機制的一種應用,它常用於實現建立新的列表,因此用在[]中。
語法:
[expression for iter_val in iterable]
[expression for iter_val in iterable if cond_expr]
例項展示:
1 要求:列出1~10所有數字的平方
2 ####################################################
3 1、普通方法:
4 >>> L = []
5 >>> for i in range(1,11):
6 ... L.append(i**2)
7 ...
8 >>> print L
9 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
10 ####################################################
11 2、列表解析
12 >>>L = [ i**2 for i in range(1,11)]
13 >>>print L
14 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
http://www.360doc.com/content/17/0319/20/1513309_638268364.shtml
Python程式語言中的列表解析式(list comprehension)就是這類語法糖(syntactic sugar)的絕佳代表。