Python小白學習之路(五)—【類和物件】【列表】【列表相關功能】
類和物件
(簡單的瞭解一下這個概念,初步有個印象,這個概念很重要,後面會著重講)
類:具有相同屬性和方法的物件的集合;
物件:萬物皆物件;
概念很抽象(每當我看不到概念的時候,我就會通過舉例來理解)
我們說的數字( int)、字串( str )以及今天學習的列表( list )就是類
list# 類list li = ['xhg',123,[33,'小夥郭'],'asf',854]#li 是通過list類來建立的物件
列表
li = ['xhg',123,[33,'小夥郭'],'asf',854]
通過這個例子列表的特徵:
- 是通過中括號 [ ] 起來
- 用逗號 , 來分割列表中的每一個元素
- 列表中的元素可以是 數字、 字串、 列表、 布林值(暫時理解是所有的都可以放進去,所以啥都行)
- List是一個類,一個類可以看成是一個集合,內部可以放置任何東西
列表的功能
1.索引取值
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] print(li[2]) li[0]#字串str li[2]#列表 list li[1]#數字int
注意:索引結果的型別為該元素型別
2.切片取值
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] v = type(li[0:2]) print(v,li[0:2])
注意:切片結果的型別始終為list
3.迴圈(for whlie)
只要有迴圈, continue 和 break 就可以用啊
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] for item in li: print(item)
4.列表的修改
方法一:通過索引方式
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] li[1] = 456 print(li)
方法二:通過切片方式
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] li[0:2]=[11,'aaa'] print(li)
5.列表的刪除
方法一:通過索引方式
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] del li[1] print(li)
方法二:通過切片方式
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] del li[0:2] print(li)
方法三:clear全部刪除(清空列表)
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] li.clear() print(li)
方法四:pop
- Remove and return item at index (default last).
- Raises IndexError if list is empty or index is out of range.
- 刪除列表中的某個值,並將該值返回
- 可以通過索引來指定刪除哪一個元素
- 如果不設定引數,預設刪除最後一個
li = ['a','qwe',123,147] v = li.pop() print(li,v)
li = ['a','qwe',123,147] v = li.pop(1) print(li,v)
方法五: remove
- 刪除列表中出現的第一個要刪除的物件
- 通過設定引數來刪除元素
-
Remove first occurrence of value.
-
Raises ValueError if the value is not present.
li = ['a','qwe',123,147,123] li.remove(123) print(li)
列表建立可以被修改(字串不可以字串連續儲存)
因為其儲存不連續(連結串列儲存)通過索引和切片方式進行修改、刪除
6.存在 in , not in 操作
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854] v1 = 123 in li v2 = 'xxx' not in li print(v1,v2)
7.取列表中所巢狀的列表裡的元素
li = ['xhg',123,[33,[124,'xhg'],'小夥郭'],'asf',854,True] print(li[2][1][1])
8.字串《 === 》列表
型別 a轉換為型別 b ,可以初步理解為
b = b( a )
比如字串型別轉換為數字型別:
a = '123'
b = int(a)
字串 ===》列表 (把某個東西轉換為列表,內部實質為使用 for迴圈)
text = 'safklasdfl;kasdfkasd' new_li = list(text) print(new_li)
字串《 ===列表
如果按照之間說的轉換思路:
li = [123,456,'adf','qwe','xhg',147] s = str(li) x = type(s) print(x,s) 執行結果: <class 'str'> [123, 456, 'adf', 'qwe', 'xhg', 147]
是把列表整體轉換成一個字串,如果我們想要去掉中括號呢?
方法一:如果列表裡元素型別既有數字,又有字串(需要自己寫 for迴圈來一個一個處理)
li = [123,456,'adf','qwe','xhg',147] s = '' for item in li: s = s + str(item) print(s)
方法二:如果列表裡元素型別只有字串,使用 join即可
li = ['adf','qwe','xhg'] s = ''.join(li) print(s)
9.append
- 功能是追加,在原來的值得最後追加,(Append object to the end of the list. )
- 可追加各種型別的元素
li = ['adf','qwe','xhg'] li.append(5) li.append('xxx') li.append([123,456,'aaa']) print(li)
10.extend
- 功能是擴充套件原列表
- 引數:可迭代物件
(不同於 append 追加,通過具體例子看結果來理解二者的具體不同之處)
li = ['adf','qwe','xhg'] li.extend('123') print(li) # 執行結果 # ['adf', 'qwe', 'xhg', '1', '2', '3'] li = ['adf','qwe','xhg'] li.append('123') print(li) # 執行結果 # ['adf', 'qwe', 'xhg', '123']
12.copy淺拷貝
(有淺拷貝,必然會存在深拷貝,這部分知識後續會講)
li = ['adf','qwe','xhg'] v = li.copy() print(v)
13.count
計算列表中元素出現的次數(不加引數報錯)
li = ['a','qwe','a','xhg',123,147,123,] v = li.count('a') print(v)
14.Index
- 從左邊開始,根據值來獲取當前值索引位置,並將其索引位置返回
- 如果該值不存在,報錯
- Return first index of value.
- Raises ValueError if the value is not present.
li = ['a','qwe','a','xhg',123,147,123,] v = li.index(123) print(v)
15.insert
- 在指定索引位置插入元素
- 第一個引數為指定索引位置,第二個引數為插入的元素
li = ['a','qwe',123,147,123] li.insert(1,123) print(li)
16.reverse
- 當前列表進行翻轉
li = ['a','qwe',123,147,123] li.reverse() print(li)
16.sort
- 排序
#從小到大排序 li = [14,25,1,5,9,87] li.sort() print(li) #從大到小排序(對列表值進行順序排序後,利用reverse進行翻轉) li = [14,25,1,5,9,87] li.sort(reverse=True) print(li)