for item in lst: 如果你只需要拿到元素in lstfor i in range(len(lst)): 不光需要拿到元素, 還需要拿到索引
lst = ["小姨多鶴_sb", "linux核心程式設計_sb", "shell指令碼大全_sb", "linux私房菜_sb"]
for item in lst:
item = item.replace("_sb", "")
print(item)
結果小姨多鶴
linux核心程式設計
shell指令碼大全
linux私房菜
in range
lst = ["小姨多鶴_sb", "linux核心程式設計_sb", "shell指令碼大全_sb", "linux私房菜_sb"]
for item in lst:
print(item)
for i in range(len(lst)):
item = lst[i]
item = item.replace("_sb", "")
lst[i] = item
print(lst)
結果小姨多鶴_sb
linux核心程式設計_sb
shell指令碼大全_sb
linux私房菜_sb
['小姨多鶴', 'linux核心程式設計', 'shell指令碼大全', 'linux私房菜']
for k in dic: 迴圈直接拿到每乙個keyfor k, v in dic.items(): 迴圈字典直接拿到key和value
第一種 in dic
dic =
for item in dic:
print(item, dic[item])
結果趙本山 勸說小丑
范偉 道士下山
郭德綱 祖宗十九代
第二種,in dic.items() 可以直接拿到k, v
dic =
for k, v in dic.items(): # (key, value)
print(k, v)
結果趙本山 勸說小丑
范偉 道士下山
郭德綱 祖宗十九代
自動解包
a, b = (1, 2) # 元祖自動解包, 解構
print(a)
print(b)結果1
2
3 列表和字典的刪除-有大坑
列表的刪除,把需要刪除的元素找到,然後存到新列表,迴圈新列表,從老列表中刪除。
原因:刪除索引0後,1(張無忌)會移動到0位置,後面依次類推,張大郎移到1,第二次迴圈時會刪除張大朗,而張無忌沒有刪除。
lst = ["張本山", "張無忌", "張大郎", "張alex", "小妞"]
new_lst =
for item in lst:
if item.startswith("張"):
# lst.remove(item) # 刪除,刪除索引0後,1(張無忌)會移動到0位置,後面依次類推,張大郎
for item in new_lst: # 迴圈新列表, 刪除老列表
lst.remove(item)
print(lst)
結果['小妞']
字典的刪除
dic =
lst =
for k in dic:
print("取出key", k)
print("存到新列表",lst)
print("分割線")
for item in lst:
print("刪除key",item)
dic.pop(item)
print(dic)
結果取出key 趙本山
取出key 范偉
取出key 郭德綱
存到新列表 ['趙本山', '范偉', '郭德綱']
分割線刪除key 趙本山
刪除key 范偉
刪除key 郭德綱
{}
案列統計車牌數量
思路
# 1. 拿到每乙個車牌子# 2. 拿到車牌的簡稱
# 3. 通過簡稱去拿省份名稱
# 4. 統計車牌的數量????
cars = ['魯a32444', '魯b12333', '京b8989m', '黑c49678', '黑c46555', '滬b25041', '黑c34567']
locations =
result = {}
for car in cars: # 魯a32444
loc = car[0] # 魯
prov = locations[loc] # 山東
# 分成兩種情況
# 如果字典中有這個省份. 只需要value+1即可
if result.get(prov): # 去字典中查詢這個省份資訊. 如果找到了. 返回的是數字, 如果找不到返回的是none
result[prov] += 1
else: # 如果字典中沒有這個省份. 需要新增乙個省份:1
result[prov] = 1
print(result)
結果
4 編碼
ascii : 英文大小寫字母, 數字, 標點符號(英文), 計算機操作符5 檔案操作乙個ascii由8bit01 組成. 256個文字 只用到了前7位. 位元組. 1個byte表示8個01
gbk : 國標碼(guo biao kuo) 16個01組成 2byte, 最多能表示65536個文字.
中文, 日文, 韓文, 蒙古文, 藏文. 正體中文. 相容ascii
unicode: 萬國碼, 由32個bit組成, 4byte
不能進行儲存和傳輸
ucs-2 拿出uncode的乙個面進行使用(python預設用的是它)
ucs-4 由32個bit組成
utf-8 : unicode的實現, 可變長度的unicode
英文: 8bit 1byte
歐洲: 16bit 2byte
其他: 24bit 3byte
utf-8和gbk不能直接轉換
編碼: encode()
解碼: decode()
open(檔案路徑, mode="模式", encoding="編碼規則")r讀檔案for line in f:
讀取檔案中的每一行資料
f.read()
f.write()
模式: r 唯讀
w 只寫
a 只能追加寫
+ 擴充套件
r+ 讀寫操作
w+ 寫讀操作
a+ 追加寫讀操作
b bytes 讀取和寫入非文字檔案
.exe .zip .rar .jpg
f = open("e:/資料/test.txt", mode="r", encoding="utf-8")
print(f.read()) # 檔案的內容全部讀取出來,如果檔案大容易導致記憶體溢位問題
# print(f.read(3)) # 讀3行
# 推薦
for line in f: # 把檔案中的每一行讀取出來
print(line.strip())
f.close()
把print輸出換行的\n替換為空
print("娃哈哈", end="")
print("礦泉水", end="")
結果娃哈哈礦泉水
w寫檔案,每次執行open時,會清空原檔案
# 寫: 能建立檔案, w模式會自動的清空原始檔
f = open("呵呵呵.txt", mode="w", encoding="utf-8")
f.write("你好\n")
f.write("我也好")
f.close()
a寫檔案,追加f = open("哈哈哈.txt", mode="a", encoding="utf-8")
f.write("你好111")
f.close()
r+讀寫模式
f = open("哈哈哈.txt", mode="r+", encoding="utf-8")
print(f.read())
f.write("我很好")
f.close()
檔案複製:不要有編碼,邊複製邊寫
f = open()
f.close()
等同於with open() as f
with open("c:/崔萬志-不抱怨-靠自己.flv", mode="rb") as f1, open("d:/崔萬志-不抱怨-靠自己.flv", mode="wb") as f2:
for part in f1:
f2.write(part)
檔案剪下
import os # 匯入os模組
with open("c:/崔萬志-不抱怨-靠自己.flv", mode="rb") as f1, open("d:/崔萬志-不抱怨-靠自己.flv", mode="wb") as f2:
for part in f1:
f2.write(part)
os.remove("d:/崔萬志-不抱怨-靠自己.flv")
2 19 列表 迴圈 控制語句 字典
classmates zhangsan list wangwu money 3000,4000,5000 tuple的意義 tuple不能改變,更安全。如果可能,能有tuple代表list就盡量用tuple。print true 只要x是非零數值,非空字串,非空list等,就判斷為true,再判斷為...
2 30 列表 迴圈,程式控制語句 字典
1.list列表 一種資料型別,有序集合,可以任意新增刪除元素。2.python迴圈 python迴圈分為兩種,一種是for in迴圈,依次把 list 或 tuple 中的每個元素迭代出來。for迴圈語法 for迭代變數in物件 序列 迴圈體 如果list裡面有100這樣的元素怎麼辦?list 0...
python迴圈刪除列表和字典
1 迴圈刪除列表中的元素lis 11 22,33 44,55 for i in range len lis del lis i 刪除報錯,因為刪除過程中,列表的下標會自動補齊到0 2 將偶數從列表中刪掉lis 11 22,33 44,55 for i in range len lis iflen i...