程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python 開發 -- 13列表類型內置方法

編輯:Python

文章目錄

    • 一.定義方式
    • 二.類型轉換
    • 三.常用操作 + 內置方法
    • 優先掌握的操作(*********)
      • 1、按索引取值(正+反向)+ 可以取值也可以改值
      • 2、切片,顧頭不顧尾 + 步長
      • 3、長度
      • 4、成員運算 in 和 not in
      • 5、追加 .append()
      • 6、插入 .insert()
      • 7、刪除 del, remove, pop
      • 7、循環取值
    • 需要掌握的操作(****)
      • 1.統計字符的個數 : .count()
      • 2.擴展,追加多個值 : .extend()
      • 3.清空列表 : .clear()
      • 4. 淺拷貝列表 : .copy()
      • 5.計算個數 : .count()
      • 6.查找索引 : .index()
      • 7.排序 : .sort()
      • 8.反序 : .reverse()
    • 四.列表比較的規則
    • 五.模擬數據結構
      • 1.隊列 : FIFO (先進先出)
      • 2.堆棧 : LIFO (後進先出)
    • 六.總結
      • 可以有多個值
      • 有序, 依賴於索引取值
    • 六.總結
      • 可以有多個值
      • 有序, 依賴於索引取值
      • 可變類型--->不可 hash 類型

一.定義方式

  • 在**“[ ]”**內用逗號分割開多個元素, 無類型限制
  • 列表類型的 “工廠” 就是 list
li = [111,222]
# 背後的操作就是
li = list([111,222])

二.類型轉換

  • 但凡可以被 for 循環遍歷的類型都可以當做參數傳給列表做成其元素
# 將字符串轉成列表類型
x = "aasdasd"
li = list(x)
print(li) #['a', 'a', 's', 'd', 'a', 's', 'd']
# 將字典轉,轉的是字典的"key"
# 工作原理
li = []
x = "aasdasd"
for i in x:
li.append(i)
print(li)

三.常用操作 + 內置方法

優先掌握的操作(*********)

1、按索引取值(正+反向)+ 可以取值也可以改值

l=['a','b','c']
# 正向
print(l[1]) #b
# 反向
print(l[-1]) #c
# 改值, 改大小寫都行
l[2]='d'
print(l) #['a', 'b', 'd']
# 如果索引不存在則報錯
l[8]='d'
print(l) #報錯

2、切片,顧頭不顧尾 + 步長

li=['song','hai','xing','hhh','lihai']
# 顧頭不顧尾顧頭不顧尾、步長
print(li[0:3]) # ['song','hai','xing']
print(li[0:5:2]) # ['song','xing','lihai']
# 全部切片(淺拷貝)
print(li[:len(li)])
print(li[0:])
print(li[:])
# 顛倒列表
print(li[::-1]) # ['lihai', 'hhh', 'xing', 'hai', 'song']

ps : 深淺拷貝https://www.cnblogs.com/songhaixing/p/14015669.html

3、長度

li=['song','hai','xing','hhh','lihai']
print(len(l)) #5

4、成員運算 in 和 not in

li = [111,222,333,[344,33]]
print(111 in l) #True
print(099 in l) #False

5、追加 .append()

  • 在列表的末尾追加一個字符
l=["aaa",2222,"cccc"]
res=l.append("ddd")
l.append("eee")
print(l) # ['aaa', 2222, 'cccc', 'ddd', 'eee']
print(res) # None (無返回值)

6、插入 .insert()

  • 在"誰"的前面插入一個字符
l=["aaa",2222,"cccc"]
res=l.insert(1,"xxx")
print(l) #['aaa', 'xxx', 2222, 'cccc']
print(res) #None (無返回值)

7、刪除 del, remove, pop

  • del : 直接刪除"誰", 通用萬能刪除, 它不支持賦值語法, 賦值會報錯
  • .remove() : 直接按照成員來刪除
  • .pop () : 按照索引來刪除
msg=['song','hai','xing','hhh','lihai']
# 通過索引來刪除
del msg[1]
del msg[1:5:2] #del加切片 (hai,hhh)
print(msg)
# 直接通過元素來刪除,沒有返回值
msg.remove('hai')
print(msg)
# 通過索引刪除,並可拿到這個值
msg.pop(1)
msg.pop() #不放置索引默認刪除末尾
print(msg)
# "pop"的特有功能:有返回值
print(msg.pop(1)) #可以彈出這個值
print(msg.remove('hai')) #只刪除,不會返回這個值

7、循環取值

l=[111,222,333,444,555,666,777]
for i in l:
print(i)

需要掌握的操作(****)

1.統計字符的個數 : .count()

l=[111,222,333,444,111,555,666,777]
print(l.count(111)) #2

2.擴展,追加多個值 : .extend()

l=[111,222,]
# 字符串
l.extend("hello")
print(l) #[111, 222, 'h', 'e', 'l', 'l', 'o']
# 列表
l.extend(["xxx","yyy"])
print(l) #[111, 222, 'h', 'e', 'l', 'l', 'o', 'xxx', 'yyy']
# 追加字典的話加入的是"key"

3.清空列表 : .clear()

msg=['song','hai','xing','song','lihai']
msg.clear()
print(msg) # []

4. 淺拷貝列表 : .copy()

msg=['song','hai','xing','song','lihai']
l=msg.copy()
print(l) # ['song','hai','xing','song','lihai']

5.計算個數 : .count()

msg=['song','hai','xing','hhh','lihai']
print(msg.count('hai')) # 1

6.查找索引 : .index()

  • 找到指定字符在列表中的索引, 可以指定范圍查找
  • 列表中沒有像字符串中 : find、rfind、rindex 的這些方法
msg=['song','hai','xing','song','lihai']
print(msg.index('song',2,4)) # 3 (找不到會報錯)

7.排序 : .sort()

l=[5,7,9,3,1,4]
l.sort() #排序
print(l)
# 參數"reverse"反序
l.sort(reverse=True) #反向排序
print(l)

8.反序 : .reverse()

  • 將列表順序反轉過來, 改的就是源列表
li = [1, 'egon', 'alex', 'lxx']
li.reverse()
print(li) # ['lxx', 'alex', 'egon', 1]

四.列表比較的規則

# 依照ascll碼表對應的十進制來比較
l1='hello'
l2='k'
print(l1 < l2) #abcd....從小到大來比較
l1=[3,'a','g','j',]
l2=[1,'c','g',]
print(l1 > l2) #要一一對應,不然報錯
print('Z'>'a') #大寫小於小寫A-Z,a-z
print('a'>'G') #大於任何大寫的字母

五.模擬數據結構

1.隊列 : FIFO (先進先出)

  • 類似於商場扶梯, 先上先下
l=[]
# 入隊列
l.append("first")
l.append("second")
l.append("third")
print(l) #['first', 'second', 'third']
# 出隊
print(l.pop(0)) #first
print(l.pop(0)) #second
print(l.pop(0)) #third

2.堆棧 : LIFO (後進先出)

  • 類似於往箱子裡疊衣服
l=[]
# 入棧
l.append("first")
l.append("second")
l.append("third")
print(l) #['first', 'second', 'third']
# 出棧
print(l.pop()) #third
print(l.pop()) #second
print(l.pop()) #first

六.總結

  • 可以有多個值

  • 有序, 依賴於索引取值

(後進先出)

  • 類似於往箱子裡疊衣服
l=[]
# 入棧
l.append("first")
l.append("second")
l.append("third")
print(l) #['first', 'second', 'third']
# 出棧
print(l.pop()) #third
print(l.pop()) #second
print(l.pop()) #first

六.總結

  • 可以有多個值

  • 有序, 依賴於索引取值

  • 可變類型—>不可 hash 類型


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved