Python學習之路2 - 列表和元組
阿新 • • 發佈:2017-09-05
copy cto .com 會有 pen 輸入 插入元素 http 數據類型
列表
概念:Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。
列表的使用
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘] //定義一個了列表 print(names) //輸出列表的所有內容 print(names[0]) //輸出列表的第0個內容
//用索引來訪問list中每一個位置的元素,記得索引是從0
開始的。
輸出結果:
如果要取最後一個元素,除了計算索引位置外,還可以用-1
做索引,直接獲取最後一個元素:
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘vector‘] print(names[-1])
輸出結果:
用len()
函數可以獲得list元素的個數。
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘yangzirui‘] print(len(names))
輸出結果:
當索引超出了範圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界,記得最後一個元素的索引還可以是len(classmates) - 1
。
切片
如果想取出中間一段連續的元素,則用name[1:3]的方式,這個參數是左閉右開的。也就是說從第1位取到第2位。
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘] print(names[1:3])# 切片
輸出結果:
跳著切片
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘]
print(names[0:-1:2]) # 從第0個到倒數第2個, 每兩個元素取一個
輸出結果:
倒著切片
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] print(names[-3,-1]) # 這也是左閉右開的,表示從倒數第三個切到倒數第二個 # 如果想切到倒數第一個, 就這樣寫 name[-3:] 這樣就表示從倒數第三個切到最後一個了
輸出結果:
追加元素
如果想在列表的最後面追加一個元素, 就用函數append(‘元素‘)。
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names.append(‘sunqi‘)
print(names)
輸出結果:
插入元素
插在任意元素的前面, 用函數insert(2,‘元素‘)。
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names.insert(1,‘yangsan‘) # 插在下標為1的元素的前面 print(names)
輸出結果:
修改元素
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names[2] = ‘shenmegui‘ print(names)
輸出結果:
刪除元素的三種方法
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘]
names.remove(‘shenmegui‘) # 根據內容刪除 del names[2] # 根據下標刪除 names.pop(2) # 如果輸入下標,則效果=del names[2], 如果不輸入下標,則默認刪除最後一個元素
根據元素內容找到元素的下標
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] print(names.index(‘zhangsan‘)) //利用index函數將下標取出來 # 還有一種方式是在循環的時候取出下標 for i in enumerate(names): print(i) # 這樣取的時候就會有下標 # 但是如果我想把下標分離出來, 該怎麽處理 for index,i in enumerate(names): print(index,i) # 這樣index裏面就裝了分離出來的下標
計算某個元素的個數
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] print(names.count(‘zhangsan‘))
輸出結果:
清空列表
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names.clear()
翻轉列表
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names.reverse() print(names)
輸出結果:
排序
規則是按照ASCII碼表的順序排的。
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names.sort() print(names)
輸出結果:
追加合並
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] names2 = [1,2,3,4] names.extend(names2)
print(names)
輸出結果:
淺拷貝列表
這個第一維時是深拷貝,第二維開始是淺拷貝。
names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘zhaoliu‘]
names3 = names.copy() // 第一種方式 p1 = names[:] // 第二種方式 p2 = list(names) // 第三種方式
深拷貝 需要引入copy模塊
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] import copy names2 = copy.copy(names)
循環列表
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] for i in names: print(i)
輸出結果:
判斷一個元素是否在列表裏
names = [‘zhangsan‘,‘lisi‘,‘zhangsan‘,‘zhaoliu‘,‘vector‘,‘zhaoliu‘] if ‘zhangsan‘ in names: print(‘存在‘)
輸出結果:
元組
元組就是只能查數據的列表。
定義格式:
names = (‘zhangsan‘,‘lisi‘)
它只有兩個方法, count 和 index。
Python學習之路2 - 列表和元組