創建數值列表
列表非常適合用于存儲數字集合,而Python提供了很多工具,可幫助你高效地處理數字列表。
明白如何有效地使用這些工具后,即便列表包含數百萬個元素,你編寫的代碼也能運行得很好。
-
使用函數 range()
數range()讓你能夠輕松地生成一系列的數字。
for
value
in
range
(
1
,
5
)
:
print
(
value
)
輸出:
1
2
3
4
在這個示例中, range()只是打印數字1~4,這是你在編程語言中經常看到的差一行為的結果。
函數range()讓Python從你指定的第一個值開始數,并在到達你指定的第二個值后停止,因此輸出
不包含第二個值(這里為5)。
-
使用 range()創建數字列表
要創建數字列表,可使用函數list()將range()的結果直接轉換為列表。如果將range()作為list()的參數,輸出將為一個數字列表。
numbers
=
list
(
range
(
1
,
6
)
)
print
(
numbers
)
輸出:[1, 2, 3, 4, 5]
使用函數range()時,還可指定步長。例如,下面的代碼打印1~10內的偶數:
even_numbers
=
list
(
range
(
2
,
11
,
2
)
)
print
(
even_numbers
)
在這個示例中,函數range()從2開始數,然后不斷地加2,直到達到或超過終值( 11),因此
輸出如下:[2, 4, 6, 8, 10]
-
對數字列表執行簡單的統計計算
有幾個專門用于處理數字列表的Python函數。例如,你可以輕松地找出數字列表的最大值、
最小值和總和:
digits
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
0
]
min
(
digits
)
#0
max
(
digits
)
#9
>>
>
sum
(
digits
)
#45
-
列表解析
前面介紹的生成列表squares的方式包含三四行代碼,而列表解析讓你只需編寫一行代碼就能生成這樣的列表。 列表解析將for循環和創建新元素的代碼合并成一行,并自動附加新元素。
squares
=
[
value
**
2
for
value
in
range
(
1
,
11
)
]
print
(
squares
)
要使用這種語法,首先指定一個描述性的列表名,如squares;然后,指定一個左方括號,并定義一個表達式,用于生成你要存儲到列表中的值。在這個示例中,表達式為value
2,它計算平方值。接下來,編寫一個for循環,用于給表達式提供值,再加上右方括號。在這個示例中,for循環為for value in range(1,11),它將值1~10提供給表達式value
2。請注意,這里的for語句末尾沒有冒號。
輸出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
使用列表的一部分
處理列表的部分元素——Python稱之為切片.
-
切片
要創建切片,可指定要使用的第一個元素和最后一個元素的索引。與函數range()一樣, Python
在到達你指定的 第二個索引前面的元素后停止 。要輸出列表中的前三個元素,需要指定索引0~3,這將輸出分別為0、 1和2的元素。
players
=
[
'charles'
,
'martina'
,
'michael'
,
'florence'
,
'eli'
]
print
(
players
[
0
:
3
]
)
輸出也是一個列表,其中包含前
三名隊員:[‘charles’, ‘martina’, ‘michael’]
你可以生成列表的任何子集,例如,如果你要提取列表的第2~4個元素,可將起始索引指定
為1,并將終止索引指定為4:
players
=
[
'charles'
,
'martina'
,
'michael'
,
'florence'
,
'eli'
]
print
(
players
[
1
:
4
]
)
輸出:[‘martina’, ‘michael’, ‘florence’]
如果你沒有指定第一個索引, Python將自動從列表開頭開始:
players
=
[
'charles'
,
'martina'
,
'michael'
,
'florence'
,
'eli'
]
print
(
players
[
:
4
]
)
輸出:[‘charles’, ‘martina’, ‘michael’, ‘florence’]
負數索引返回離列表末尾相應距離的元素,因此你可以輸出列表末尾的任何切片。例如,如果你
要輸出名單上的最后三名隊員,可使用切片players[-3:]:
players
=
[
'charles'
,
'martina'
,
'michael'
,
'florence'
,
'eli'
]
print
(
players
[
-
3
:
]
)
打印最后三名隊員的名字
-
遍歷切片
如果要遍歷列表的部分元素,可在for循環中使用切片。在下面的示例中,我們遍歷前三名
隊員,并打印他們的名字:
players
=
[
'charles'
,
'martina'
,
'michael'
,
'florence'
,
'eli'
]
for
player
in
players
[
:
3
]
:
print
(
player
)
輸出:
charles
martina
michael
-
復制列表
要復制列表,可創建一個包含整個列表的切片,方法是同時省略起始索引和終止索引( [:])。這讓Python創建一個始于第一個元素,終止于最后一個元素的切片,即復制整個列表。
my_foods
=
[
'pizza'
,
'falafel'
,
'carrot cake'
]
friend_foods
=
my_foods
[
:
]
print
(
"My favorite foods are:"
)
print
(
my_foods
)
print
(
"\nMy friend's favorite foods are:"
)
print
(
friend_foods
)
輸出:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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