第五天元組、字典

for執行 1:找到下標
2:下標對應的值取出來

lists = [10,20,30,40,50]
for i in lists:
lists.remove(i)
print(lists)
執行結果:[20, 40]
原因:下標變了
在同一個列表中不能同時做遍歷和刪除
切割ok、重新賦值ok、內存id()

解決方法:要刪除數據用空列表記錄下來,
遍歷記錄的列表
從原來的列表中刪除數據
lists = [10,20,30,40,50]
tem_list = []
for k in lists:
tem_list.append(k)
for a in tem_list:
lists.remove(a)
print(lists)
直接賦值,結果仍然不對,沒有新開闢內存空間,用的仍是一個地方,所以不行,lists和tem_list都是[20, 40 ]
lists = [10,20,30,40,50]
tem_list = lists

for i in tem_list:
lists.remove(i)

print(lists)

元組:tuple: nums = (10,20,30,40,50) #必須是個集合
nums = (10) # 不是元組
nums = (10,) # 是元祖

元組不能更改裏面的元素,要改,先轉換爲列表,改完在轉換回元組

查看元素是否在元組裏:if 元素 in 元組:

統計元素重複的個數:元組.count(元素)

元組中有多少個元素:len(元組)

組包:元組=(元素1,元素2,元素3,...)
拆包:變量1,變量2,變量3 ,變量... = 元組 # 數量必須要一樣
逗號,空的不算啊,用 len() 查看長度,空的也不算,len()等於多少就使用多少個變量拆包
tuples=(10,20,30,) # 組包
a,b,c = tuples #拆包

字典:dict 字典名 = {鍵名:鍵值, 鍵名:鍵值}
鍵名是字符串、數字、元組,都行,通過鍵名去取值,鍵名(key)自定義,通過
鍵名去索引

查:字典 [鍵名]

增:dicts["age"] = 30 # 沒有就是添加
改: dicts["age"] = 18 # 有就是修改
刪: 字典名.pop(鍵名) # 括號啥也不打就報錯
字典名.clear()
遍歷: 得到鍵: for 變量 in 字典:或 for 變量 in 字典.keys():
dicts={"names":"寶寶","edu":"本科","marry":True,18:30}
for i in dicts:
print(i)

       得到鍵值:for 變量 in 字典.values():

dicts={"names":"寶寶","edu":"本科","marry":True,18:30}
for j in dicts.values():
print(j)

       得到鍵值對: for 變量 in 字典.items()  會自動組包  

dicts={"names":"寶寶","edu":"本科","marry":True,18:30}
for k in dicts.items():
print(k)

       得到值:   for 變量1,變量2 in 字典.items()  會自動解包 

dicts={"names":"寶寶","edu":"本科","marry":True,18:30}
for m,n in dicts.items():
print(m,n)

字符串:
單引號、雙引號、三引號
strs = "hello 'python' "
strs = 'hello "python" '
strs = "hello \"python\" "
遍歷

判斷:strs.isdecimal() 判斷是否都是數字,是返回True
負數不算?
strs = "-10123124"
print(strs.isdecimal())

查找:字符串.find("字符") 從左向右,找到後返回下標,找不到返回-1

       字符串.rfind("字符")  從右向左,找到後返回下標,找不到返回-1    

        字符串.index("字符")    從左向右,找到後返回下標,找不到報錯

        字符串.rindex("字符")   從右向左,找到後返回下標, 找不到報錯

替換:新的字符串變量 = 字符串.replace("被替換的字符串" , "替換後的字符串", 替換的次數)
必須要有個新字符串變量接收;替換的次數不寫,默認都替換

分割:字符串.split( "切割符" ) 切割完後,切割符變逗號,字符串被分開

去掉空白:字符串.strip() 去掉開頭和結尾的空白,中間的去不掉 lstrip()去左側,rstrip()去右側

切片:字符串[ 索引1 : 索引2: 步長 ] 前閉後開,索引2爲始終爲開,截取一部分;如果是從0開始,索引 1的0可以省略;如果到末尾,索引2的數值可以省略 ; 還可以索引1 和索引2 都省略;步長值不寫,默認1;如果要倒過來(逆序),步長值爲負
如果步長爲正,索引1是起始,索引2是結束,如果步長爲負,索引2是起始,索引1是結束

strs = "abcdefg"
print("first\t",strs[0:4])
print("second\t",strs[:4])
print("third\t",strs[4:])
print("fotrh\t",strs[:4:-1])
print("fifth\t",strs[4::-1])
print("sixth\t",strs[4:0:-1])
print("seventh\t",strs[-1:-8:-1])

利用切片把 123.txt 變成 123-副本.txt
strs = "123.txt"
index = strs.rfind(".")
new_strs = strs[0:index] + "-副本" + strs[index:]
print(new_strs)

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