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)

 

只要有循環,continuebreak就可以用啊

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 = ba

比如字符串類型轉換為數字類型:

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)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM