一、列表 list 列表是有序的,列表元素可以被修改 list之灰魔法 1、列表格式: 中括弧括起來, 逗號分隔每個元素, 列表中的元素可以是數字、字元串、列表、布爾值、等所有的都能放進去 “集合“,”內部可以放置任何東西 li=['alex', '小名', [12, 23, 45], 23, 23 ...
一、列表----list
列表是有序的,列表元素可以被修改
=================list之灰魔法================
1、列表格式:
中括弧括起來,
逗號分隔每個元素,
列表中的元素可以是數字、字元串、列表、布爾值、等所有的都能放進去
“集合“,”內部可以放置任何東西
li=['alex', '小名', [12, 23, 45], 23, 23, '小花']
2、列表中可以嵌套任何類型
3、可以通過索引取值, 或者切片取值(切片取值的結果也是列表)
print(li[3]) print(li[3:-1])
4、支持for迴圈, while迴圈。
5、列表元素可以進行修改
索引修改: li [ 2 ] =120 print(li)
索引切片修改: li [1:3] = [27, 28]
6、刪除
索引刪除: del li [1] print(li)
索引切片刪除: del li [2,4] print(li)
7、支持 in 操作
v = 'alex' in li print(li)
8、嵌套列表查詢方式
li=['小王',‘小寧’, [a, b, [d, e, f ], c ], ‘小張’]
print(li[2][2][0])
9、字元串轉換成列表
s='abcdefg'
li = list(s)
print(li)
10、列表轉換成字元串
如果列表中即有數字又有字元串,需要自己寫一個for迴圈
li = [12,13,14,'xiaozhang', 'xiaowang']
s=' '
for i in li :
s=s+str(i)
print(s)
若列表中的元素只有字元串,直接用字元串join方法
li = ['xiaozhang', 'xiaowang']
v = ' '.join(li)
print (v)
=====================list類中提供的方法===================
1、 append追加 li = [11,22,33,44] 錯誤方法: v = li.append('alex') print(v) 列印出來為none,說明v中為空 因為字元串不能修改,而列表可以直接修改,所以:可以直接寫 li.append('alex') print(li) 列印結果為:[...'alex']
或者: li.append(['alex'])
print(li) 列印結果為: [...['alex']]
2、clear清空列表 li.clear() print(li) 3、copy拷貝 淺拷貝:v=li.copy() print(v) 4、count 計算元素出現的次數 v = li.count(22) print(v) 5、extend 擴展原列表 參數必須是:iterable可迭代對象(能被for迴圈) li.extend([1992,'xiaowang']) print(li) 列印結果為:[...,1992, 'xiaowang'] 或者 li.extend('小王同學') print(li) 列印結果為:['小',‘王‘,‘同’, ’學’]
6、index 獲取當前值的索引位置(最左優先) v = li.index(22) print(v) 或者可以選取範圍 v=li.index('alex',1,3) 7、insert 指定索引位置插入元素 li.insert(位置,插入的值) 例如: li.insert(0,'alex') print(li) 》》》》》》》》》補充《》《》《》《》《》《》 源碼中出現: index索引,value值 8、pop 刪除指定位置的值 不指定索引時,預設刪除最後一個值,並獲取刪除的值 v = li.pop() print(li) print(v) 指定索引時,刪除指定位置的值,並獲取刪除的值 v = li.pop(1) print(li) print(v) 9、remove 刪除列表中的指定值,左邊優先(括弧內要填入刪除的內容) li.remove(11) print(li)
10、reverse 反轉,將當前列表進行反轉
li.reverse()
print(li)
11、sort排序
從小到大排序:
li.sort()
從大到小排序
li.sort(reverse=True)
欠兩個參數:講函數時補充 cmp, key
二、元祖 tuple
元素不可被修改,且元素不能被增加或者刪除,但是可以被查看
tu = (11, 'alex', ( 28, 29 ), 22, [33, 44 ], 55)
按照慣例一般在末尾價格逗號來識別
1、可通過索引取值,切片取值
2、可以進行for迴圈(可迭代對象)
3、因為是可迭代對象:字元串、列表、元祖可以相互轉換
4、extend擴展,在元祖中同樣適用
5、元祖是有序的
5、元祖的一級元素不可被修改,元祖中嵌套的列表可以被修改
》》》》》》》》兩個方法《》《》《》《》《》《
count 獲取指定元素在元祖中出現的次數
index 獲取某個指定元素的索引,可以設定起始位置查找
三、字典 dict
字典的value可以是任何值
info = {"k1": "v1", "k2": "v2"} 鍵值對
布爾值,列表、字典不能作為字典的key
1、查找字典內容
v = info[key] 例如: v=info["k1"]
2、刪除key : del info["k1"]
3、for迴圈
1、迴圈字典中所有的key
for item in info.keys():
print(item)
2、迴圈字典中的所有values(值)
for item in info.values():
prent(item)
3、既要迴圈key又要迴圈字典中所有的值
for item in info.keys():
print(item,info[item])
那麼可以簡寫為:
for k, v in info.items():
print( k, v )
《》《》《》《》字典的方法《》《》《》《《》》 1、clear 清空 2、copy 淺拷貝 3、fromkeys 根據序列創建字典,並且制定統一的值 用法: v= dict.fromkeys(['k1', 123, 'k2'], 22) 4、通過索引取key,如果字典中沒有會直接報錯 get 用法:查找字典的key,key不存在時可以指定預設值 方法一: dic = {"k1":23, "k2": 24} v= dic.get("k3") print(v) 如果k3不在字典中,則返回None 方法二: dic = {"k1":23, "k2": 24} v= dic.get("k3",1111) print(v) 如果k3不在字典中,則返回1111 5、items 6、 keys 7、 pop 刪除。既可以指定所要刪除的值,又可以拿到刪除掉的值 方法一: dic = {"k1":23, "k2": 24} v = dic.pop('k1') print(dic,v) 方法二:設定具體值,當要刪除的key不存在時,返回到設置的值 dic = {"k1":23, "k2": 24} v = dic.pop('k5',1111) print(dic,v) 8、 popitem隨機刪除,並返回刪除的值 dic = {"k1":23, "k2": 24} v,k = dic.popitem() print(dic,v,k) 9、setdefault設置值,如果值已經存在,並獲取存在key對應的值 如果key不存在,創建並獲取新創建的key的值 例如: dic = {"k1":23, "k2": 24} v = dic.setdefault("k111","alex") print(dic,v) 10、update 更新 dic = {"k1":23, "k2": 24} 方法一:dic.update({'k1': 1111, 'k3',123}) print(dic) 方法二: dic.update(k1=123, k3=345, k5='alex') print(dic)