標籤:變化 with 類型 strip() body [1] 讀取 數組 一個
# 數組操作
stus = [‘xiaohong‘,‘xiaobai‘,‘xiaohei‘] #中括弧定義,下標從0開始,最後往前從-1開始
stus.append(‘xiaozhang‘) #List增加元素,預設增加在最後
stus.insert(1,‘xiaoming‘) #指定位置增加元素,下標不存在預設增加在最後
print(stus[1]) #中括弧下標擷取對於List中對應下標元素
print(stus) #不帶下標擷取所以List元素
stus.count(‘xiaohei‘) #查看元素的個數,不存在返回0
stus.index(‘xiaohei‘) #查看元素下標,多個返回第一個,不存在報錯
stus[1] = ‘xiaohuang‘ #修改對應元素,重新賦值
stus.pop(1) #刪除指定下標元素,預設刪除最後,不存在報錯,返回對應刪除元素
stus.remove(‘xiaoming‘) #刪除對應元素,多個則刪除第一個,不存在報錯,無返回
del stus[-1] #del關鍵字刪除對應下標元素
stus.clear() #清空List
stus.reverse() #反轉List元素順序
stus.sort() #List排序,預設升序排序
stus.sort(reverse=True) #指定reverse=True降序排序
stus.extend(all_num) #將all_num元素合并入stus中,all_num中元素不變
#多維陣列
all_num = [1,2,3,[4,5,6,[7,8]]] #多維陣列使用多個中括弧定義
print(all_num[3][3][1]) #對應下標擷取對應元素,下標從外向內取數
#數組迴圈和切片
names = [‘xiaohong‘,‘xiaobai‘,‘xiaohei‘,‘xiaoli‘,‘xiaozhang‘]
for name in names: #迴圈擷取List中的元素
print(name)
print(names[0:2]) #切片取值,包前不包後(樣本中擷取下標為0、1兩個元素)
print(names[:2]) #切片取值,起始下標不填寫預設為0開始
print(names[1:]) #切片取值,結束下標不填寫預設為最後結束
print(names[::2]) #切片指定步長取值,預設步長為1
print(names[::-1]) #切片指定步長取值,步長為正從左往右取值,負則從右往左取值
#字串切片和迴圈取值
title = ‘niuniu zahuopu‘ #字串存在下標,可以通過切片取值
print(title[:8]) #一個空格對應一個下標
for t in title:
print(t) #迴圈擷取字串對應值
for i,t in enumerate(title): #enumerate擷取對應下標和元素
print(‘key:{i},value:{t}‘.format(i=i,t=t))
# 字典K-V形式,取值方便順捷
d = {‘name‘: ‘xiaohei‘,
‘age‘: 18,
‘sex‘: ‘man‘} #字典使用大括弧定義Key,Value
print(d[‘name‘]) #通過Key取值,不存在則報錯
print(d.get(‘name‘)) #get方法取值,不存在則返回None
d.get(‘xx‘, ‘xiaohei‘) #給方法取值,未擷取到則返回default值
d[‘addr‘] = ‘shanghai‘ #增加字典,直接賦值Key,Value,字典無序
d.setdefault(‘money‘, 10000) #增加字典Key,Value
d[‘addr‘] = ‘shengzhen‘ #修改字典值,存在則修改,不存在則新增
d.pop(‘money‘) #根據Key刪除某個字典
d.popitem() #隨機刪除某個字典
del d[‘addr‘] #del關鍵字刪除對應字典
# d.clear() #清空字典
print(d.keys(), d.values()) #keys方法和values方法擷取字典所有Key或Value
if ‘xiaohei‘ in d: #判斷Key是否在字典中
print(‘name is exited‘)
for k in d: #迴圈擷取字典的Key
print(k)
for k, v in d.items(): #items方法迴圈擷取字典的Key和Value
print(‘Key:{key},Value:{value}‘.format(key=k, value=v))
res = list(d.items()) #強制轉換數組
print(res)
# 字典嵌套,字典嵌套字典或List
stus = [{‘name‘: ‘xiaohei‘,
‘age‘: 18,
‘score‘: {
‘chinese‘: 80,
‘english‘: 75}},
{‘name‘: ‘xiaobai‘,
‘age‘: 18,
‘score‘: {
‘chinese‘: 80,
‘english‘: 90}}
]
print(stus[0][‘score‘][‘english‘]) #根據從外到內,根據下標或Key取值
total_score = stus[0][‘score‘].values()
print(sum(total_score))
total_score1 = 0
for score in total_score:
score = int(score)
total_score1 = total_score1 + score
print(total_score1)
#元組操作
a = (1,1,2,3,4,5,6,7,8) #小括弧定義元組,不允許修改,其他與List相同
print(a.count(‘1‘)) #擷取元組中某個元素的個數
print(a.index(1)) #擷取元組中某個元素的下標,多個則返回第一個
#可變變數:list,字典
#不可變變數:元組,字串
li = [1,1,2,3,4,5,6,7,8]
for i in li: #在迴圈操作時不要刪除可變變數,刪除元素會導致下標變化取值錯誤
if i%2 !=0:
li.remove(i)
print(li)
li2 = li #淺拷貝,記憶體位址不變
li3 = li[:] #深拷貝
print(id(li2)) #id方法擷取對於記憶體位址
print(id(li3))
#字串操作,不會改變原有字串值
name = ‘besttest‘
new_name = name.strip() #預設去除首尾的空格和分行符號
new_name = name.strip(‘best‘) #去除指定字元?
new_name = name.rsplit() #去除右邊的空格和分行符號
new_name = name.lstrip() #去除左邊的空格和分行符號
name_count = name.count(‘t‘) #尋找摸個字元在字串中的個數
index = name.find(‘t‘) #尋找對應字串中字元的下標,不存在返回-1,多個返回第一個
index = name.index(‘t‘) #尋找對應字串中字元的下標,不存在報錯
name.upper() #所有字元轉換成大寫
name.lower() #所有字元轉換成小寫
print(name.endswith(‘a‘)) #判斷字串以什麼結束
print(name.startswith(‘a‘)) #判斷字串以什麼開始
name.format() #字串格式化
d ={‘name‘:‘xiaohei‘,‘age‘:18}
f = ‘我是{name},今年{age}歲‘
print(f.format_map(d)) #將一個字典格式化
name.replace(‘best‘,‘better‘) #字串替換(‘old‘,‘new‘)
print(‘122‘.isdigit()) #判斷是否全為數字
print(‘122‘.isalnum()) #判斷字串是否為數字或字母
print(‘122‘.isalpha()) #判斷字串是否為英文字母
#字串分割
st = ‘a, b, c, d, e‘
st.split(‘,‘) #按照某個字元分割字串返回list,預設安裝空格分割
slit = [‘a‘,‘b‘,‘c‘,‘d‘]
res = ‘,‘.join(slit) #將字串、字典、list等(非int和布爾類型)以某個字元串連成一個字串
print(res)
#非空即真
a = ‘ ‘ #判斷a是否為真,當a不為空白則為真,即非空即真
if a:
print(‘True‘)
else:
print(‘false‘)
# 非零即真
num = 1 #判斷num是否為零,當num不為零則為真,即非空即真
if num:
print(‘True‘)
else:
print(‘false‘)
#檔案操作,開啟檔案之後必須關閉檔案,不要在迴圈中開啟檔案
f = open(‘aa.txt‘,encoding=‘UTF-8‘) #開啟檔案,指定編碼格式
print(f.read()) #讀取檔案內容
f.close() #關閉檔案
f.write(‘xiaohei‘) #寫檔案,必須為字串類型
f.write(‘xiaohei‘+‘\n‘) #換行寫檔案
#檔案開啟模式
open(‘aa.txt‘,‘r‘,encoding=‘UTF-8‘)
#‘r‘ 唯讀模式,預設開啟模式,檔案不存在則報錯
#‘r+‘ 讀寫入模式,檔案不存在報錯
#‘w‘ 寫入模式,會清空檔案內容
#‘w+‘ 寫讀模式,會清空檔案內容
#‘a‘ 追加模式
#‘a+‘ 追加讀寫入模式,檔案指標在檔案末尾,從末尾增加
f.seek(0) #將檔案指標前移檔案最開始,只針對讀可用
print(f.readline()) #按行讀取,唯讀取一行內容
print(f.readlines()) #讀取檔案所有內容,返回list,每一行作為一個元素
names = [‘xiaohei‘,‘xiaobai‘]
f.writelines(names) #將可迴圈的變數寫入檔案
f.truncate() #清空檔案
f.tell() #查看當前檔案指標位置
#高效出來檔案方法,每次去用一行
for f in f:
print(f)
for f in f:
f = f.strip() #去除每行的分行符號和空格
stu_lst = f.split(‘,‘) #根據逗號分割一行的內容為list
print(stu_lst)
Python_python字元類型操作及檔案操作