一、遍歷列表
1、在遍歷數組或者列表的時候,我們首先想到的就是循環結構,常用的也就是for循環了,所以在python在遍歷列表時,我們也用for
(1) magicians =['alice','david','carolina']
(2) for magician in magicians:
(3) print(magician)
首先在(1) 定義一個列表,由 python編程基礎(二):列表 中,我們在定義一個列表名稱時最好是定義成複數的名稱,比如本例子中magicians
其次在(2)行,使用for,此句末尾一定要加冒號" : ",此句表示的是從 magicians 中依次取出元素,並賦值給magician這個變量。這種命名就可以看成,複數表示的是一個集合,而單數表示的就是集合中的元素。
在(3)行,將存儲在magician中的信息打印出來
注意:在使用循環時,選擇描述單個列表元素的有意義的名稱大有幫助,比如:小貓列表,小狗列表,一般列表,可以使用下面的定義名稱的方式:
for cat in cats:
for dog in dogs:
for item in list_of_items:
二、創建數值列表
1、使用函數 range()產生一系列數字
for value in range(1,5):
print(value)
結果:
1
2
3
4
可以觀察到,雖然程序寫的是range(1,5) 但是不會生成5,只能到4
2、使用range() 創建數字列表
(1)、用 list() 來生成
numbers = list(range(1,6))
print(numbers)
結果:
[1,2,3,4,5]
(2)、生成其他特殊的列表
for value in range(1,11):
squares.append(value**2)
print(squares)
結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
其實可以使用列表解析來實現,實現起來更加簡潔方便。如下:
列表解析是將 for 循環 和創建新元素的代碼合併在一起
squares = [value**2 for value in range(1,11)]
print(squares)
結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
注意在使用 列表解析的時候 for 循環後面就沒有冒號
3、對列表中的數據做簡單統計
digits = list(range(1,10))
digits.append(0)
print(digits)
min_digit = min(digits)
print(min_digit)
max_digit = max(digits)
print(max_digit)
sum_digit = sum(digits)
print(sum_digit)
結果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
0
9
45
可以用 min() max() sum(),來求列表中的最小值、最大值、求和
三、使用列表中的一部分(切片)
1、切片
與range相同,不會到達設定的結束索引,因此在創建切片的時候再最後的索引上加1,比如像索引列表中前3個變量,那麼索引範圍不能是(0,2),而應該是(0,3)這樣纔是列表中的前三個:0 1 2
players = ['aaa','bbb','ccc','ddd','eee','fff','jjj','hhh','iii']
print(players[1:4]) # 打印 2~4 的元素
print(players[:4]) # 由於沒有起始索引,因此就會從列表開頭開始
print(players[2:]) # 由於沒有終止索引,因此就截止到列表結束
print(players[-3:]) # -3 表示從倒數第3個變量開始
結果:
['bbb', 'ccc', 'ddd']
['aaa', 'bbb', 'ccc', 'ddd']
['ccc', 'ddd', 'eee', 'fff', 'jjj', 'hhh', 'iii']
['jjj', 'hhh', 'iii']
2、遍歷切片
可以使用 for 循環來遍歷切片
players = ['aaa','bbb','ccc','ddd','eee','fff','jjj','hhh','iii']
for player in players[:3]:
print(player)
結果:
aaa
bbb
ccc
切片索引是[:3],因此就是 0 1 2 表示列表的前三個
3、複製列表
在列表的複製時,一定要使用如下的形式:
列表1 = 列表2[ : ] %此時是完成了列表的複製
而不能直接相等,如下:
列表1 = 列表2 % 此時只是將列表1 關聯到 列表2;其實列表1 跟 列表2 表示的是同一個向量
my_foods = ['aaa','bbb','ccc','ddd']
friend_foods = my_foods[:]
my_foods.append('ssd')
friend_foods.append('wer')
print("my")
print(my_foods)
print("you")
print(friend_foods)
結果:
my
['aaa', 'bbb', 'ccc', 'ddd', 'ssd']
you
['aaa', 'bbb', 'ccc', 'ddd', 'wer']
可以發現使用 列表1 = 列表2[ : ] 結果是有兩個列表,若使用列表1 = 列表2 則不一樣
my_foods = ['aaa','bbb','ccc','ddd']
friend_foods = my_foods
my_foods.append('ssd')
friend_foods.append('wer')
print("my")
print(my_foods)
print("you")
print(friend_foods)
結果:
my
['aaa', 'bbb', 'ccc', 'ddd', 'ssd', 'wer']
you
['aaa', 'bbb', 'ccc', 'ddd', 'ssd', 'wer']
可以發現,這種情況下,friend_foods 和 my_foods 表示的是一個列表
四、元組
不可變的列表就是元組
元組看起來像是 列表 但是元組是使用 圓括號來標識,而非是方括號。
元組:
dimensions = (200,100)
lists=[200,100]
1、定義元組
dimensions = (200,100)
print(dimensions[0])
print(dimensions[1])
結果:
200
100
2、修改元組
元組是不允許修改其中的元素的,但是可以給他的變量做賦值
dimensions = (200,100)
#dimensions[0] = 500 這樣是不行的額,不能修改元組中的元素
print(dimensions[0])
print(dimensions[1])
dimensions = (300,700)
print(dimensions[0])
print(dimensions[1])
結果:
200
100
300
700