Python基礎知識詳解 從入門到精通(四)列表、元組、字典、集合

Python基礎知識詳解 從入門到精通(四)

本篇主要是介紹python,內容可先看目錄
其他基礎知識詳解,歡迎查看本人的其他文章
Python基礎知識詳解 從入門到精通(一)介紹
Python基礎知識詳解 從入門到精通(二)基礎
Python基礎知識詳解 從入門到精通(三)語法與函數
Python基礎知識詳解 從入門到精通(五)模塊管理
Python基礎知識詳解 從入門到精通(六)文件操作
Python基礎知識詳解 從入門到精通(七)類與對象
Python基礎知識詳解 從入門到精通(八)魔法方法
Python基礎知識詳解 從入門到精通(九)生成exe文件(可執行)、pyc、pyo文件

列表(list)

查看列表內置函數 dir(list)

創建列表
列表 m = [‘slk’,3,4,6.44,[2,4,6]]
空列表 m = []

/ 是續行
如 [3,3,45,/
5,6,7] 是合法的 第二行會自動接上上面/的位置
用於其他也合法

向列表中添加元素
列表名.append(元素) 將元素添加到列表末尾
列表1名.extend(列表2) (列表2,可以用列表名 也可以直接放列表)將列表2添加到列表末尾
列表名.insert(n,元素) 將元素添加到n位處(從0開始),後面的元素自動退一位

從列表中獲取元素
可直接用索引值(從0開始的排序序號)
如 列表名[n]
兩層列表 列表名[n][m]

刪除元素
列表名.remove(元素) 這個元素要在列表中,會刪除第一個匹配的元素
del 列表名[n] n爲索引值 ,刪除該元素後,其他元素前進一位
del 列表名 刪除整個列表
列表名.pop(n) 刪除列表[n]的元素,並返回這個元素的值,n從0開始,沒有n默認爲末尾元素

列表分片 (字符串,元組也有)
列表名[n :m:步長] 得到從n(包含)到m(不包含)的元素,,,得到的是原列表的拷貝
忽略n默認從0開始,,忽略m默認到結尾,,帶負號爲倒數,可都忽略(拷貝整個) 可用於賦值另一個列表

列表比較
從第0個開始比較, 有結果即結束
如 list1=[123,456] list2=[234,123] list1>list2
結果爲false或0
若是字符串就比較ASCII碼 同理

成員關係運算符 in 與 not in
如 555 in list1 結果爲False
123 in list1 結果爲true
只能判斷一層關係,
如list5=[1,2,[‘kk’,4]] Kk in list5 結果爲 false
若兩層則 kk in list5[1] 結果爲 true

list4= lsit1 + list2 結果爲[123,456,234,123] 與拼接類似
list1*3 結果爲[123,456,123,456,123,456] 不改變list1
list1 *=3 改變

內置函數
列表名.count(元素) 返回該元素在列表出現的次數 元組可以
列表名.index(元素) 返回第一個出現的該元素的索引值 元組
列表名.index(元素,n,m) 從n開始找到m 返回第一個出現的該元素的索引值
列表名.sort() 將列表元素字母順序升序排序
列表名.sort(func,key,reverse) func,key是默認的
若 列表名.sort(reverse=True) 將列表元素字母順序降序排序
列表名.sorted() 與sort用法一樣,但是不修改原列表的順序,返回修改順序的列表
列表名.reverse() 將列表倒置

若list1= list2 不是拷貝,list1變化list2也變化 相當於指定list2也爲list1,是同一個,加個名字而已,讓list1指向list2
List1 = list2[ : ] 拷貝 不一起變化

元組(tuple)

元組創建之後不可改變這是與列表最大的區別,內置函數、使用方法很多都一樣

創建元組
如 tuple1 =(1,2,3,4,5,6)
或tuple1 = 1,2,,4,5,6 用小括號或不要(逗號是標誌),,,,列表用中括號
空元組 tuple1 = ()
只有一個元素的元組 tuple1 = (1,) 後面要加一個逗號

元組更新
如 tuple1 = (‘a’,’b’,‘d’) 要插入c
tuple1 = tuple[ :1] + (‘c’ , ) + tuple1 [1 :]
要刪除某個也是這種方法

刪除整個元組 del 元組名

元素訪問,“元組分片” 拼接(+),重複(*),成員關係運算符,比較,
都與列表一樣

字典(dict)

字典相當於映射
創建字典,關鍵{}
Dict1 = { 1:‘hhh’,2:‘weee‘} #其中1是鍵(key) hhh是值(value)
Dict2 = {‘ss’:’bb’,’l’:’shjhh’}
空字典 dict3 = {}
Dict4 = dict(((‘a’,78),(‘e‘,99))) 即得到 dict4={‘a’:78,‘e‘:99}
Dict5 = dict (哈哈=‘hhhh‘,哈哈哈=’hh‘) 即得到 dict={哈哈:‘hhhh‘,哈哈哈: ’hh‘}
Dict6.fromkeys((1,2,3),‘Number’) 得到dict6 = {1:‘Number ’,2:‘Number ’,3=‘Number ’}
第二個參數沒有時候默認爲Nome,常用於初始化(若原本已經有key存在,則清除),其中dict6要原本已經是字典類型

使用字典
是無序的,不能索引,只能用key
Dict1 [1]
Dict1[1]=’jsdjs ‘ 可改變原來的值
Dict1[3]=’ sklahh’ 在dict1中自動創建一個鍵
字典名.keys() 取鍵值
如 dict1.fromkeys(range(10),’贊’)
for eachkey in dict1.key():
print(eachkey,end=‘ ’)
結果爲 0 1 2 3 4 5 6 7 8 9 10
字典名.values() 取字典值
用法同上
字典名.items() 取整個項即鍵加值
用法同上 結果爲 (0,’贊‘)(1,’贊‘)……

遍歷字典
Iii={1=11,2=22,3=44}
如for key,value in iii.items():
這樣可以一次便利鍵和值

字典嵌套
如student1={‘數學‘=111,’語文‘=98}
Student2={‘數學‘=111,’語文‘=98}
Student3={‘數學‘=111,’語文‘=98}
stu={ Student3,Student2,Student1}
for name in stu
print(neme)

示例
#創造30個學生成績並輸出
Stus={}
For I in range(0,30):#製作循環次數
New_stus={‘數學‘=111}
Stus.append(new_stus) #循環一次創造一個學生成績
For I in stus:
Print(stus)

內置函數
字典名.get(key) 如不存在返回None 否則返回字典值
可以用成員操作符判斷key 如 22 in dict1

字典名.clear() 清空字典 (列表也有)
字典名.copy() 複製字典 如a= b 不是複製而是讓a b指向同一個字典(列表也有)
字典名.pop(key) 返回原字典中相對應key的值,同時刪除這個鍵
字典名.popitem() 隨機返回一個項 形式:(key,值),並刪除這個項
字典名.setdefault(key) 若key存在則返回字典值,不存在則自動創建一個,也可指定創建的值(如 字典名.setdefault(key,值)),否則值爲None
字典名.update(字典) 用一個字典或映射關係更新另一個字典
如 a={1:11,2:22,3:33} b={3:77}
a. uodate(b)
結果a = {1:11,2:22,3:77}

集合(set)

集合是無序的,不能索引
創建
Num={1,,2,3,4,5} 花括號括起來的值,若不體現映射關係 則爲集合
集合的元素是唯一的
若num={1,2,3,4,5,5,4,3,2,1} 重複的值會被忽略
結果爲 num ={1,2,3,4,5}
Set1= set([1,2,3,4,5,5])結果 set1={1,2,3,4,5}

不可變集合
Num = frozenset([1,2,3,4,5])

使用

集合名,add(值) 添加值
集合名.remove(值) 刪除值

最後

持續更新arduino 樹莓派 python 等等
接到有幫助的話 求點贊👍 求關注❤️ 求分享👥
有問題可以評論
點關注,不迷路
如果有任何錯誤,如何建議,請批評指教,不勝感激 !

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章