序言
python的列表對(duì)象是這個(gè)語言提供的最通用的序列,列表是一個(gè)任意類型的對(duì)象的位置相關(guān)的有序集合,它沒有固定的大小。不像字符串,其大小是可變的,通過對(duì)偏移量進(jìn)行賦值以及其他各種列表的方法進(jìn)行調(diào)用,確實(shí)能夠修改列表的大小。列表的形式如下
>>
>
A
=
[
'apple'
,
1
,
[
1
,
2
,
'peach'
]
,
2
]
列表可以包含多種元素,可以進(jìn)行嵌套,帶有多種方法(具體的方法,可以查看相關(guān)手冊(cè)),通過這些方法,列表可以有很多功能,例如可以當(dāng)做棧,隊(duì)列(低效,一般不用)等,下面我們主要介紹 列表推導(dǎo)式 的使用。
主體內(nèi)容
列表推導(dǎo)式提供了一個(gè)更簡(jiǎn)單的創(chuàng)建列表的方法。常見的用法是把某種操作應(yīng)用于序列或可迭代對(duì)象的每個(gè)元素上,然后使用其結(jié)果來創(chuàng)建列表,或者通過滿足某些特定條件元素來創(chuàng)建子序列
例如,我們通常創(chuàng)建一個(gè)列表,是這樣的姿勢(shì)
>>
>
squares
=
[
]
>>
>
for
x
in
range
(
10
)
:
.
.
.
squares
.
append
(
x
**
2
)
.
.
.
>>
>
squares
[
0
,
1
,
4
,
9
,
16
,
25
,
36
,
49
,
64
,
81
]
但是,我們也可以這樣創(chuàng)建
squares
=
[
x
**
2
for
x
in
range
(
10
)
]
它們的結(jié)果是一樣的,但第二種方法更加簡(jiǎn)潔易讀。
列表推導(dǎo)式
的結(jié)構(gòu)是由
一對(duì)方括號(hào)
所包含的以下內(nèi)容:
一個(gè)表達(dá)式,后面跟一個(gè) for 子句,然后是零個(gè)或多個(gè) for 或 if 子句
。 其結(jié)果將是一個(gè)新列表,由對(duì)表達(dá)式依據(jù)后面的 for 和 if 子句的內(nèi)容進(jìn)行求值計(jì)算而得出。例如下面的例子。
>>
>
[
(
x
,
y
)
for
x
in
[
1
,
2
,
3
]
for
y
in
[
3
,
1
,
4
]
if
x
!=
y
]
[
(
1
,
3
)
,
(
1
,
4
)
,
(
2
,
3
)
,
(
2
,
1
)
,
(
2
,
4
)
,
(
3
,
1
)
,
(
3
,
4
)
]
它等價(jià)于
>>
>
combs
=
[
]
>>
>
for
x
in
[
1
,
2
,
3
]
:
.
.
.
for
y
in
[
3
,
1
,
4
]
:
.
.
.
if
x
!=
y
:
.
.
.
combs
.
append
(
(
x
,
y
)
)
.
.
.
>>
>
combs
[
(
1
,
3
)
,
(
1
,
4
)
,
(
2
,
3
)
,
(
2
,
1
)
,
(
2
,
4
)
,
(
3
,
1
)
,
(
3
,
4
)
]
列表推導(dǎo)式可以使用復(fù)雜的表達(dá)式和嵌套函數(shù)
>>
>
from
math
import
pi
>>
>
[
str
(
round
(
pi
,
i
)
)
for
i
in
range
(
1
,
6
)
]
[
'3.1'
,
'3.14'
,
'3.142'
,
'3.1416'
,
'3.14159'
]
列表推導(dǎo)式也支持嵌套,如下代碼所示
>>
>
matrix
=
[
.
.
.
[
1
,
2
,
3
,
4
]
,
.
.
.
[
5
,
6
,
7
,
8
]
,
.
.
.
[
9
,
10
,
11
,
12
]
,
.
.
.
]
下面的列表推導(dǎo)式將交換其行和列
>>
>
[
[
row
[
i
]
for
row
in
matrix
]
for
i
in
range
(
4
)
]
[
[
1
,
5
,
9
]
,
[
2
,
6
,
10
]
,
[
3
,
7
,
11
]
,
[
4
,
8
,
12
]
]
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
