append 向列表的末尾添加新元素
lst = ["劉德華"]
lst.append("周星馳")
print(lst)
insert 在指定索引之前插入元素
lst = ["劉德華","周星馳"]
lst.insert(0,"吳孟達")
lst.insert(2,"朱茵")
print(lst)
python自定義函數,extend 迭代追加所有元素
"""要求: 數據的類型是可迭代性數據"""
strvar = "1234"
lst.extend(strvar)
print(lst)
pop 通過指定索引刪除元素,若沒有索引移除最后那個
lst = ["晏國彰","毛洪磊","劉子濤","劉聰","牧樹人"]
# 指定索引進行刪除
res = lst.pop(1)
# 默認沒有任何參數,刪除的最后一個
res = lst.pop()
print(res)
print(lst)
remove 通過給予的值來刪除,如果多個相同元素,默認刪除第一個
lst = ["晏國彰","毛洪磊","劉子濤","劉聰","牧樹人","劉子濤","劉子濤"]
# 指定值進行刪除,如果有多個相同的重復值,默認刪掉第一個
lst.remove("劉子濤")
print(lst)
python函數手冊?clear 清空列表
lst = ["晏國彰","毛洪磊","劉子濤","劉聰","牧樹人","劉子濤","劉子濤"]
lst.clear()
print(lst)
index 獲取某個值在列表中的索引
"""列表.index(值,start,end) [] 表達參數可選項 找不到報錯"""
lst = ["晏國彰","毛洪磊","劉子濤","劉聰","牧樹人","劉子濤","劉子濤"]
res = lst.index("劉子濤")
res = lst.index("劉子濤",3)
"""res = lst.index("劉子濤",3,5) => error"""
print(res)
count 計算某個元素出現的次數
lst = ["晏國彰","毛洪磊","劉子濤","劉聰","牧樹人","劉子濤","劉子濤"]
res = lst.count("劉子濤")
print(res)"""
區別: 字符串里面的count可以劃定范圍,列表里面的count不行
strvar = "asjksaaaf"
print(strvar.count("a",1))
"""
python內置函數,sort 列表排序 (默認從小到大排序)
lst = [99,44,66,1,10,3,-57,-88]
lst.sort()
print(lst)# 從大到小排序
lst.sort(reverse=True)
print(lst)# 排序英文 (ASCII 編碼)
"""一位一位進行比較,在第一位相同的情況下,比較第二位,以此類推"""
lst = ["tom","jack","lucy","bob"]
lst.sort()
print(lst)# 可以對中文進行排序(無規律可循)
lst = ["王文","劉德華","周星馳","周潤發"]
lst.sort()
print(lst)
reverse 列表反轉操作
lst = ["王文","劉德華","周星馳","周潤發"]
lst.reverse()
print(lst)
a = 15
b = a
a = 16
print(b)lst1 = [1,2,3]
lst2 = lst1
lst1.append(4)
print(lst2)
淺拷貝
import copy
lst1 = [1,2,3]# 方法一 copy.copy() 模塊.方法
lst2 = copy.copy(lst1)
lst1.append(4)
print(lst1)
print(lst2)# 方法二 列表.copy()
lst1 = [1,2,3,4]
lst2 = lst1.copy()
lst1.insert(0,0)
print(lst1)
print(lst2)
python sort函數。深拷貝
"""
lst1 = [1,2,3,[4,5,6]]
lst2 = copy.copy(lst1)
lst1[-1].append(7)
lst1.append(100)
print(lst1)
print(lst2)
"""lst1 = [1,2,3,[4,5,6]]
lst2 = copy.deepcopy(lst1)
lst1[-1].extend("abc")
print(lst1)
print(lst2)print(id(lst2[-1]))
print(id(lst1[-1]))print(id(lst1[0]))
print(id(lst2[0]))lst2[0] = 1111
print(id(lst1[0]))
print(id(lst2[0]))
總結
淺拷貝只拷貝一級容器中的所有數據
深拷貝拷貝所有層級的所有元素
淺拷貝速度比深拷貝速度快
深拷貝在執行是: 如果是不可變數據,地址會暫時的指向原來數據
? 如果是可變數據,直接開辟新空間
不可變數據: Number str tuple
可變數據 : list set dict
dic = {}
dic["ww"] = "英俊瀟灑,一表人才,文武雙全"
dic["xm"] = "干游戲,吃泡面,不洗澡"
dic["hh"] = "可愛,漂亮,大方,溫柔"
print(dic)"""fromkeys() 使用一組鍵和默認值創建字典"""lst = ["ww","xm","hh"]
dic = {}.fromkeys(lst,None)
print(dic)"""
注意點: 三個鍵所指向的列表是同一個(不推薦)dic = {}.fromkeys(lst,[])
print(dic)
dic["ww"].append(1)
print(dic)dic["ww"] = [1]
dic["xm"] = [1]
dic["hh"] = [1]
"""
pop() 通過鍵去刪除鍵值對 (若沒有該鍵可設置默認值,預防報錯)
dic = {"top":"花木蘭" , "middle":"甄姬" , "bottom":"孫尚香" , "jungle" : "鐘馗" , "support":"蔡文姬" }
res = dic.pop("top")# 如果刪除的是不存在的鍵,直接報錯
# res = dic.pop("top123")# 可以設置默認值,預防報錯
res = dic.pop("top123","沒有這個鍵")
res = dic.pop("middle","沒有這個鍵")
print(res,dic)
popitem() 刪除最后一個鍵值對
dic = {"top":"花木蘭" , "middle":"甄姬" , "bottom":"孫尚香" , "jungle" : "鐘馗" , "support":"蔡文姬" }
res = dic.popitem()
print(res,dic)
clear() 清空字典
dic = {"top":"花木蘭" , "middle":"甄姬" , "bottom":"孫尚香" , "jungle" : "鐘馗" , "support":"蔡文姬" }
dic.clear()
print(dic)
update() 批量更新(有該鍵就更新,沒有就添加)
dic = {'ww': '一表人才,除了帥氣的皮囊之外,一無所有', 'ywz': '渣男', 'hxl': '摳腳老漢'}
dic_new = {"ywz":"暖男","hxl":"扣手","ly":"小美女,單純,可愛,活潑,靈巧...."}# 方法一(推薦)
dic.update(dic_new)
print(dic)# 方法二
dic.update(kxq="聰明,活潑,可愛,靈巧,惹人喜歡",ccg="樂觀,大方,可愛,靈巧")
print(dic)
get() 通過鍵獲取值 (若沒有該鍵可設置默認值,預防報錯)
dic = {'ww': '一表人才,除了帥氣的皮囊之外,一無所有', 'ywz': '渣男', 'hxl': '摳腳老漢'}
res = dic.get("ww")
res = dic.get("asvdf") # None
res = dic.get("asvdf","沒有這個鍵")
# res = dic["abcdef"] error
print(res)
keys() 將字典的鍵組成新的可迭代對象
dic = {'ww': '一表人才,除了帥氣的皮囊之外,一無所有', 'ywz': '渣男', 'hxl': '摳腳老漢'}
res = dic.keys()
print(res)
values() 將字典中的值組成新的可迭代對象
dic = {'ww': '一表人才,除了帥氣的皮囊之外,一無所有', 'ywz': '渣男', 'hxl': '摳腳老漢'}
res = dic.values()
print(res)
items() 將字典的鍵值對湊成一個個元組,組成新的可迭代對象
dic = {'ww': '一表人才,除了帥氣的皮囊之外,一無所有', 'ywz': '渣男', 'hxl': '摳腳老漢'}
res = dic.items()
print(res)
set1 = {"jacklove","theshy","rookie","xboyww"}
set2 = {"倪萍","張國榮","趙本山","劉能","趙四","xboyww"}# intersection() 交集
res = set1.intersection(set2)
print(res)
# 簡寫 &
res = set1 & set2
print(res)# difference() 差集
res = set1.difference(set2)
print(res)
# 簡寫 -
res = set1 - set2
print(res)# union() 并集
res = set1.union(set2)
print(res)
# 簡寫 |
res = set1 | set2
print(res)# symmetric_difference() 對稱差集 (補集情況涵蓋在其中)
res = set1.symmetric_difference(set2)
print(res)
# 簡寫 ^
res = set1 ^ set2
print(res)set1 = {"周星馳","劉德華","成龍","張學友"}
set2 = {"周星馳","劉德華"}# issubset() 判斷是否是子集
res = set1.issubset(set2)
print(res)
# 簡寫 <
res = set1 < set2
print(res)# issuperset() 判斷是否是父集
res = set1.issuperset(set2)
print(res)
# 簡寫 >
res = set1 > set2
print(res)# isdisjoint() 檢測兩集合是否不相交 不相交 True 相交 False
res = set1.isdisjoint(set2)
print(res)
add() 向集合中添加數據 (一次加一個)
setvar = {"神秘男孩","金角大王"}
setvar.add("銀角大王")
print(setvar)
update() 向集合中迭代增加數據 (一次加一堆)
setvar = {"神秘男孩","金角大王"}
strvar = ("小明","小紅")
setvar.update(strvar)
print(setvar)
clear() 清空集合
setvar = {"神秘男孩","金角大王","銀角大王"}
setvar.clear()
print(setvar)
pop() 隨機刪除集合中的一個數據
setvar = {"神秘男孩","金角大王","銀角大王"}
res = setvar.pop()
print(res)
remove() 刪除集合中指定的值 (不存在則報錯) => 了解即可
setvar = {"神秘男孩","金角大王","銀角大王"}
setvar.remove("神秘男孩")
print(setvar)
discard() 刪除集合中指定的值 (不存在的不刪除) => 推薦使用
setvar = {"神秘男孩","金角大王","銀角大王"}
setvar.discard("神秘男孩")
setvar.discard("神秘男孩666")
print(setvar)
frozenset 可強轉容器類型數據變為冰凍集合
冰凍集合一旦創建,不能進行任何修改,只能做交叉并補操作
lst1 = ["王聞",18,"男性","愛好:跑步"]
fz1 = frozenset(lst1)lst2 = ("王聞","地址:包頭","買一輛特斯拉9.9包郵")
fz2 = frozenset(lst2)print(fz1,type(fz1))
print(fz2,type(fz2))# 不能夠在冰凍集合當中添加或者刪除元素
# fz1.add(123) error
# 只能交叉并補print( fz1 & fz2 )
print( fz1 - fz2 )
li = ["alex", "WuSir", "xboy", "oldboy"]
列表中追加元素"seven",并輸出添加后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
li.append("seven")
print(li)
請在列表的第1個位置插入元素"Tony",并輸出添加后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
li.insert(0,"Tony")
print(li)
請修改列表第2個位置的元素為"Kelly",并輸出修改后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
li[1] = "Kelly"
print(li)
請將列表l2=[1,“a”,3,4,“heart”]的每一個元素添加到列表li中,一行代碼實現,不允許循環添加。
li = ["alex", "WuSir", "xboy", "oldboy"]
l2=[1,"a",3,4,"heart"]
li.extend(l2)
print(li)print(li + l2)
請將字符串s = "qwert"的每一個元素添加到列表li中,一行代碼實現,不允許循環添加。
li = ["alex", "WuSir", "xboy", "oldboy"]
s = "qwert"
li.extend(s)
print(li)
請刪除列表中的元素"alex",并輸出刪除后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
li.remove["alex"]
print(li)
請刪除列表請刪除列表中的第2至4個元素,并輸出刪除元素后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
del li[1:]
del li[1:4]
print(li)
刪除列表中的第2個元素,并輸出刪除的元素和刪除元素后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
res = li.pop(1)
print(res)
print(li)
請將列表所有得元素反轉,并輸出反轉后的列表
li = ["alex", "WuSir", "xboy", "oldboy"]
li.reverse()
print(li)
請計算出"alex"元素在列表li中出現的次數,并輸出該次數。
li = ["alex", "WuSir", "xboy", "oldboy"]
res = li.count("alex")
print(res)
寫代碼,有如下列表,利用切片實現每一個功能
li = [1, 3, 2, “a”, 4, “b”, 5,“c”]
通過對li列表的切片形成新的列表l1,l1 = [1,3,2]
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(list(li[:3]))
通過對li列表的切片形成新的列表l2,l2 = [“a”,4,“b”]
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(list(li[3:6]))
通過對li列表的切片形成新的列表l3,l3 = [1,2,4,5]
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(list(li[::2]))
通過對li列表的切片形成新的列表l4,l4 = [3,“a”,“b”]
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(li[1:6:2])
print(list(li[1:-2:2]))
通過對li列表的切片形成新的列表l5,l5 = [“c”]
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(list(li[-1]))
通過對li列表的切片形成新的列表l6,l6 = [“b”,“a”,3]
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(list(li[-3:0:-2]))
寫代碼,有如下列表,按照要求實現每一個功能。
lis = [2, 7, “k”, [“qwe”, 20, [“k1”, [“tt”, 3, “1”]], 89], “ab”, “adv”]
將列表lis中的"tt"變成大寫
lis = [2, 7, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
print(lis[3][2][1][0].upper())
將列表中的數字3變成字符串"100"
lis = [2, 7, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3][2][1][1] = "100"
print(lis)
將列表中的字符串"1"變成數字101
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
lis[3][2][1][-1] = 101
print(lis)
li = [“alex”, “eric”, “rain”]
利用下劃線將列表的每一個元素拼接成字符串"alex_eric_rain"
li = ["alex", "eric", "rain"]
res = "_".join(li)
print(res)
利用for循環打印出下面列表的索引
li = ["alex", "WuSir", "xboy", "oldboy"]
for i in li:print(li.index(i))
利用for循環和range 找出50以內能被3整除的數,并將這些數插入到一個新列表中。
lst = []
for i in range(51):if i % 3 == 0:lst.append(i)
print(lst)
利用for循環和range從100~10,倒序將所有的偶數添加到一個新列表中,然后對列表的元素進行篩選,將能被4整除的數留下來
lst = []
for i in range(100,9,-2):if i % 4 == 0:lst.append(i)
print(lst)
查找列表li中的元素,移除每個元素的空格,并找出以"A"或者"a"開頭,并以"c"結尾的所有元素,并添加到一個新列表中,最后循環打印這個新列表。
li = ["xboy ", "alexC", "AbC ", " egon ", " riTiAn ", "WuSir", " aqc"]
lst_new = []
for i in li:res = i.strip()if (res.startswith("A") or res.startswith("a")) and res.endswith("c"):lst_new.append(res)
print(lst_new)
敏感詞列表 li = [“蒼老師”, “東京熱”, “武藤蘭”, “波多野結衣”]
將用戶輸入的內容中的敏感詞匯替換成等長度的*(蒼老師就替換***),并添加到一個列表中;如果用戶輸入的內容沒有敏感詞匯,則直接添加到新列表中。
li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"]
lst = []
while True:strvar = input("請輸入名字")# 如果按 q 直接退出if strvar.upper() == "Q":print(lst)break# 循環遍歷替換敏感詞for i in li:if i in strvar:strvar = strvar.replace(i,"*" * len(i))# 把所有過濾好的數據存放新的列表lst.append(strvar)
li = [1, 3, 4, “alex”, [3, 7, “23aa”,8, “xboy”], 5,(‘a’,‘b’)]
循環打印列表中的每個元素,并轉化為小寫,遇到列表則再循環打印出它里面的元素。
li = [1, 3, 4, "alex", [3, 7, "23aa",8, "xboy"], 5,('a','b')]
for i in li:# 判斷類型是不是字符串if isinstance(i,str):print(i.lower())# 判斷類型是列表或者元組elif isinstance(i,(list,tuple)):for j in i:# 判斷是不是字符串類型if isinstance(j,str):print(j.lower())else:# 否則原型化打印print(j)else:print(i)
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
講述元組的特性
可獲取,不可修改,有序
請問tu變量中的第一個元素 “alex” 是否可被修改?
不可以
請問tu變量中的"k2"對應的值是什么類型?是否可以被修改?如果可以,請在其中添加一個元素 "seven"
列表 可以修改
tu[-1][2]["k2"].append("seven")
請問tu變量中的"k3"對應的值是什么類型?是否可以被修改?如果可以,請在其中添加一個元素 "Seven"
元組 不可修改
把字符串 “k:1|k1:2|k2:3|k3:4” 處理成字典 {‘k’:1,‘k1’:2…}
strvar = "k:1|k1:2|k2:3|k3:4"
dic = {}
lst = strvar.split("|")
print(lst) # ['k:1','k1:2','k2:3','k3:4']
for i in lst:k,v = i.split(":")dic[k] = v
print(dic) # {'k':'1','k1':'2','k2':'3','k3':'4'}
有如下值li= [11,22,33,44,55,66,77,88,99,90],
將大于 66 的值保存至字典的k1鍵中,
將小于 66 的值保存至字典的k2鍵中。
即: {‘k1’: 大于66的所有值列表, ‘k2’: 小于66的所有值列表}
li= [11,22,33,44,55,66,77,88,99,90]
dic = {"k1":[],"k2":[]}
for i in li:if i > 66:dic["k1"].append(i)elif i < 66: dic["k2"].append(i)
print(dic)
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态