1. 程式人生 > >python隨筆3(操作列表)

python隨筆3(操作列表)

研究 play 隨筆 IV AC 直接 player 開始 print

3.1遍歷整個列表

你經常需要遍歷列表的所有元素,對每個元素執行相同的操作。可以使用python中的for循環。

magicians.py

magicians = [alice,david,carolina]
for magician in magicians:
     print(magician)

>>>alice
   david
   carolina

深入研究循環

在magicians.py中使用的簡單循環中,python首先讀取其中的一行代碼:

for magician in magicians:

這行代碼讓python獲取列表magicians中的第一個值(‘alice’),並將其存儲到變量magician中。接下來,python讀取下一行代碼:

print(magician)

它讓python打印magician的值——依然是’alice’。鑒於該列表還包含其他值,python返回到循環的第一行:

for magician in magicians:

python獲取列表中的下一個名字——’david’,並將其存儲到變量magician中,再執行循環體代碼。依此往復,直到for循環後面沒有其他的代碼。另外,對於用於存儲列表中每個值的臨時變量,可以指定任何名稱。

3.2創建數值列表

使用函數range()

函數range()讓你能輕松生成一系列數字。

for value in range(1,5):
     print(vale)

1
2
3
4

函數range()讓python從你指定的第一個值開始數,並在到達你指定的第二個值後停止,因此輸出不包含第二個值。使用range()時如果不符合預期,嘗試+1或-1。

使用range()創建數字列表

要創建數字列表,可使用函數 list() 將 range() 的結果直接轉換為列表。

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)

>>>[2,4,6,8,10]

函數range()從2開始,然後不斷加2。

使用函數range()幾乎能夠創建任何需要的數字集。例如,創建一個包含前10個整數的平方列表。在python中,兩個星號(**)表示乘方運算。

squares = []
for value in range(1,11):
    squrare = value**2
    squares.append(squrare)
print(squares)

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

還可以不使用臨時變量,直接將每個計算得到的值附加到列表末尾:

squares = []
for value in range(1,11):
    squares.append(value**2)
print(squares)

對數字列表執行簡單的統計計算

digits = [1,2,3,4,5,6,7,8,9,0]
min(digits)
max(digits)
sum(digits)

列表解析

列表解析將for循環和創建新元素的代碼合並成一行,並自動附加新元素

squares = [value**2 for value in range(1,11)]
print(squares)

要使用這種語法,首先指定一個描述性的列表名,如squares;然後,指定一個左方括號,並定義一個表達式,用於生成你要存儲到列表中的值。在這個示例中,表達式為value**2.接下來編寫一個for循環,用於給表達式提供值,再加上右括號。

3.3使用列表的一部分

切片

要創建切片,可指定要使用的第一個元素的索引和最後一個元素的索引加1。要輸出列表中的前3個元素,需要指定索引0~3,這將輸出0,1,2。

players = [a,b,c,d,e]
print(players[0:3])

>>>[a, b, c]

列如你要取列表第2到4個元素,可以指定索引為1,4。如果沒有指定第一個索引,python將自動從列表頭開始提取:同理,不指定最後一個索引,python將自動從第一個索引到列表末尾。

負數索引返回離列表末尾相應距離的元素。例如,如果你要輸出最後3個元素,可使用切片players[-3:]。

players = [a,b,c,d,e]
print(players[-3:])

>>>[c, d, e]

遍歷切片

如果要遍歷列表中的部分元素,可再for循環中使用切片。

players = [a,b,c,d,e]
for player in players[:3]:
    print(player.title())

A
B
C

復制列表

要復制列表,可創建一個包含整個列表的切片。

my_love = [a,b,c,d,e]
friend_love = my_love[:]
print(my_love)
print(friend_love)

[a, b, c, d, e]
[a, b, c, d, e]

3.4元組

python將不能修改的值稱為不可變的,而不可變的列表稱為元組。

定義元組

例如,有一個大小不能變的矩形,可將其長寬存儲在一個元組中,從而確保它們不可修改。

dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])

200
50

遍歷元組中的所有值

像列表一樣,元組也可以用for循環來遍歷。

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

200
50

修改元組變量

雖然不能修改元組的元素,但可以給存儲元組的變量賦值。因此要修改矩形的尺寸,可重新定義整個元組

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

dimensions = (400,100)
for dimension in dimensions:
    print(dimension)


200
50
400
100

python隨筆3(操作列表)