PythonDay2 列表和元組的基本用法

2021-09-11 08:04:48 字數 3966 閱讀 9489

python內建的一種資料型別是列表:list。list是一種有序的集合,用「[ ]」表示,可以隨時新增和刪除其中的元素。這裡以以一些簡單的例子來介紹list的基本用法。比如,列出班裡所有同學的名字,就可以用乙個list表示:

names = ["zhangyang","guyun","xiangpeng","xuliangwei"]

print(names)

執行結果:

['zhangyang', 'guyun', 'xiangpeng', 'xuliangwei']

在列表中每一位資料都有唯一的下標,所以當我們需要讀取列表中的資料時,根據下標就可以知道該位置的資料是什麼,比如輸入names[0]就可以輸出『zhangyang』。需要注意的是python中列表的下標是從o開始,所以列表中下標的最後一位應該是len(names)-1。

當我們想連續讀取列表中的資料時,可以加「:」來實現,比如names[0:2],但這裡其實值讀取了前兩位資料,names[2]是讀不到的,原因是因為names[ : ]只管左邊不管右邊,也就是最後一位是讀不到的,所以當我們在連續讀取時,最後一位記得加1。當需要從後面讀取資料,而資料量有比較大時,可以採用切片式讀取,即加「 - 」,從後面開始讀取,但仍然是按照從左到右開始讀取。

names = ["zhangyang","guyun","xiangpeng","xuliangwei"]

print(names[0]) #取其中某一位

print(names[1:3]) # 這樣就可以取到中間兩個值

print(names[0:2],names[3]) # 跳著讀取

print(names[-1]) #讀取最後一位

print(names[-2:0]) # 這個時候我們取不到最後乙個值,省略點 :後面的0就行

print(names[-2:]) # 讀取最後兩位,當[  :  ] 冒號的兩側如果有0或者-1,可以省略。

執行結果:

zhangyang

['guyun', 'xiangpeng']

['zhangyang', 'guyun'] xuliangwei

xuliangwei

['xiangpeng', 'xuliangwei']

- 用del 進行刪除

- 用pop(i)進行刪除,如果不選擇刪除的位置,預設刪除最後一位

names = ["zhangyang","guyun","xiangpeng","xuliangwei"]

names = ["zhangyang","guyun","xiangpeng","xuliangwei"]

names.insert(1,"zhangsan") # 將zhangsan插到zhangyang 的後面

names[1] = "wanger" # 修改時,只需要直接對需要修改的地方重新賦值

print(names)

del names[1] # 刪掉wanger

print(names)

names.pop() # 如果沒有在()中加下標,就預設刪除掉了最後乙個

print(names)

names.pop(2) # 加入下標後就可以刪除掉想刪的資料

print(names)

執行結果:

['zhangyang', 'wanger', 'guyun', 'xiangpeng', 'xuliangwei', 'lisi']

['zhangyang', 'guyun', 'xiangpeng', 'xuliangwei', 'lisi']

['zhangyang', 'guyun', 'xiangpeng', 'xuliangwei']

['zhangyang', 'guyun', 'xuliangwei']

利用index就可以查出某一位資料在列表中的位置

names = ["zhangyang","guyun","xiangpeng","xuliangwei"]

print(names.index("xiangpeng"))

執行結果:

2

利用count檢視列表中相同資料的數量

names = ["zhangyang","guyun","xiangpeng","xuliangwei","guyun"]

print(names.count("guyun"))

print(names.count("wanger")) # 這裡wanger是不存在的,可以用來判斷列表中是否有該資料

執行結果:

20

names = ["zhangyang","guyun",["alex","jack"],"xiangpeng","xuliangwei","guyun"]

import copy

names1 = copy.copy(names)

names2 = copy.deepcopy(names)

names4 = names

names[2][0] = "alex"

names[1] = "張飛"

print(names)

print(names1) # name1中guyun沒變,而alex變成了大寫,是因為copy是淺copy,第一層的完全複製,

# 第二層複製的是小列表儲存資料的位址,所以當小列表有改變時,names1跟著一起變

print(names2) # names2中都沒有改變,是因為deepcopy是一種深複製,直接複製巢狀列表的資料

print(names4) # names4和names的變化一樣,因為這種直接賦值方式,資料存放的位址是一樣的

執行結果:

['zhangyang', '張飛', ['alex', 'jack'], 'xiangpeng', 'xuliangwei', 'guyun']

['zhangyang', 'guyun', ['alex', 'jack'], 'xiangpeng', 'xuliangwei', 'guyun']

['zhangyang', 'guyun', ['alex', 'jack'], 'xiangpeng', 'xuliangwei', 'guyun']

['zhangyang', '張飛', ['alex', 'jack'], 'xiangpeng', 'xuliangwei', 'guyun']

列表的迴圈有兩種方式:1. 最簡單的就是for迴圈,但這樣只是顯示資料。利用index就可以讀取位置

2.利用enumerate讀取資料及下標

names = ["zhangyang","guyun","xiangpeng"]

for i in names:

print(i)

for i in names:

print(names.index(i),i)

for index,i in enumerate(names):

print(index,i)

執行結果:

zhangyang

guyun

xiangpeng

0 zhangyang

1 guyun

2 xiangpeng

0 zhangyang

1 guyun

2 xiangpeng

元組可以看做是列表的一種簡化形式,但是元組只能讀,不能進行修改,所以一般用來查,只有count和index兩種用法

names = ("zhangsan","lisi")

print(names.count("zhangsan"))

print(names.index("lisi"))

執行結果:

11

python Day 3 列表和元組

1.列表可以直接相加 list1 1,2 list2 3,4 list3 list1 list2 list3 1,2,3,4 2.列表相比較 list1 list2 true 3.列表乘以整數 list1 2 1,2,1,2 1 in list1 true 4.列表中的方法 list.count 計...

2,列表和元組

資料結構,以某種方式組合起來的資料元素的集合。python最基本的資料結構為序列,序列中每個元素都有編號,即其位置或索引。python中常用的三種序列 列表 元組 字串。注 列表可以修改,元組 字串不可修改,列表 元組中的元素是多樣的。注 列表以 標識 元組以 標識 字串以雙引號標識。通用序列操作 ...

Python day 3 列表與元組

包括資料型別 整數,浮點數,字串,物件。1.建立乙個普通列表 member 小甲魚 小布丁 黑夜 迷途 number 1,2,3,4 2.建立乙個混合列表 mix 1,小甲魚 3.14,1,2,3 3.建立乙個空列表 empty member 小甲魚 小布丁 黑夜 迷途 福祿娃娃 member.ex...