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...