Python_python字元類型操作及檔案操作

來源:互聯網
上載者:User

標籤:變化   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字元類型操作及檔案操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.