python編程基礎(三):操作列表 & 元組

一、遍歷列表

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

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章