Python之更簡潔的語法 解析語法 條件表示式

2021-10-09 09:40:00 字數 3050 閱讀 8660

二、條件表示式

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...