二、條件表示式
ls =[[
0]*10
for i in
range(5
)]ls
output:
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
ls[0]
[0]=
1ls
output:
[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
以列表解析為例(也稱為列表推導)
[expressionfor value in iterableif conditihon]
*三要素:表示式、可迭代物件、if條件(可選)
執行過程
(1)從可迭代物件中拿出乙個元素
(2)通過if條件(如果有的話),對元素進行篩選
若通過篩選:則把元素傳遞給表示式
(4)將(3)步產生的結果作為列表的乙個元素進行儲存
(5)重複(1)~(4)步,直至迭代物件迭代結束,返回新建立的列表
# 等價於如下**
result =
for value in iterale:
if condition:
【例】求20以內奇數的平方
squares =
for i in
range(1
,21):
if i%2==
1:2)
print
(squares)
output:
[1, 9, 25, 49, 81, 121, 169, 225, 289, 361]
squares =
[i**
2for i in
range(1
,21)if i%2==
1]print
(squares)
output:
[1, 9, 25, 49, 81, 121, 169, 225, 289, 361]
支援多變數
x =[1
,2,3
]y =[1
,2,3
]results =
[i*j for i,j in
zip(x, y)
]results
output:
[1, 4, 9]
支援迴圈巢狀
colors =
["black"
,"white"
]sizes =
["s"
,"m"
,"l"
]tshirts =
["{} {}"
.format
(color, size)
for color in colors for size in sizes]
tshirts
output:
[『black s』, 『black m』, 『black l』, 『white s』, 『white m』, 『white l』]
右邊for巢狀在左邊for中
squares =
for k, v in squares.items():
print
(k,": "
, v)
squares =
squares
output:
squares =
(i**
2for i in
range(10
))squares
output:
colors =
["black"
,"white"
]sizes =
["s"
,"m"
,"l"
]tshirts =
("{} {}"
.format
(color, size)
for color in colors for size in sizes)
for tshirt in tshirts:
print
(tshirt)
output:
black s
black m
black l
white s
white m
white l
expr1 if condition else expr2
if條件成立執行expr1,else執行expr2
【例】將變數n的絕對值賦值給變數x
n =-10
if n >=0:
x = n
else
: x =
-nx
可以寫為:
n =-10
x = n if n>=
0else
-nx
條件表示式和解析語法簡單實用、執行速度相對更快一些,相信大家會慢慢的愛上它們 python的解析語法
乙個很常見的變成任務是基於另乙個序列的處理來產生一系列的值。通常,這個任務在python中使用所謂的解析語法後實現很簡單。一般形式如下 expression for value in iterable if condition if子句是可選的。解析計算與下面的傳統控制結構計算結果列表在邏輯上是等價...
Python之簡潔ini讀寫
ini檔案是常用的配置檔案格式,當然,除了它之外,還有其他好多種,比如conf,xml等等。不過,今天就談論ini罷了。python對此提供了相應的模組,示例如下 coding utf 8 import configparser def writeconfig filename config con...
更簡潔的 CSS 清理浮動方式
清理浮動有很多種方式,像使用 br 標籤自帶的 clear 屬,使用元素的 overflow,使用空標籤來設定 clear both 等等。但考慮到相容問題和語義化的問題,一般我們都會使用如下 來清理浮動。清理浮動 clearfix after clearfix 其原理是,在 高階 瀏覽器中使用 a...