字串的其他內建方法和列表的內建方法
阿新 • • 發佈:2022-03-09
字串的其他內建方法(非常重要)
這些內建是在我們寫程式的時候會經常用到的,使用我們有必要全部記住,就算不能全部記住,我們也需要知道字串有的內建函式。
1.移除字串首尾的指定字元 我們可以選擇移除的方向預設是兩邊全部,不填寫指定字元就是移除空格。 str = '!!!!春遊去動物園!!!' print(str.strip('!')) # 春遊去動物園 print(str.lstrip('!')) # 春遊去動物園!!! 移除左邊 print(str.rstrip('!')) # !!!!春遊去動物園 移除右邊 2.大小寫 str2 = 'aBcD' print(str2.lower()) # abcd 將所有的英文字母變為小寫 print(str2.upper()) # ABCD 將所有的英文字母變為大寫 print(str2.islower()) # False 判斷字串中所有的英文字母是否是純小寫 返回值是布林值 print(str2.isupper()) # False 判斷字串中所有的英文字母是否是純大寫 返回值是布林值 3.判斷字串的開頭或者結尾是否是指定的字元 str3 = 'hello world' print(str3.startswith('h')) # True print(str3.startswith('hello')) # True print(str3.startswith('world')) # False print(str3.endswith('d')) # True print(str3.endswith('world')) # True print(str3.endswith('hello')) # False 4.格式化輸出 第一種:和佔位符用法一樣,但是使用{}佔位 print('I am {},hobby is {}'.format('春遊去動物園','玩')) 第二種:根據索引取值 可以反覆使用 print('I am {0} {0} {1},hobby is {1} {0}'.format('春遊去動物園','玩')) I am 春遊去動物園 春遊去動物園 玩,hobby is 玩 春遊去動物園 第三種:根據指名道姓的方式取值 print('I am {name} {hobby},hobby is {name}{hobby}'.format(name = '春遊去動物園',hobby = '玩')) I am 春遊去動物園 玩,hobby is 春遊去動物園玩 第四種:直接使用已經出現過的變數 name = '春遊去動物園' hobby = '玩' print(f'I am {name} {hobby},hobby is {hobby} {name}') I am 春遊去動物園 玩,hobby is 玩 春遊去動物園 千萬不要忘了在要格式化輸出的字串前加f!!!!!! 5.拼接字串 str5 = '少壯不努力' str5_1 = '老來靠吉言' print(str5 + str5_1)#少壯不努力老來靠吉言 print(str5 * 5)#少壯不努力少壯不努力少壯不努力少壯不努力少壯不努力 print('|'.join(str5))#少|壯|不|努|力 print('*'.join(['1', '2', '3', '4', '5']))#1*2*3*4*5 join的元素必須都是字串才可以 否則報錯 6.替換字串中指定的字元 str6 = 'hello hello hello world hero hello' 替換全部 print(str6.replace('hello', '111')) #111 111 111 world hero 111 替換指定的個數(從左往右) print(str6.replace('hello', '111', 1)) #111 hello hello world hero hello 7.判斷字串中是否是純數字 str7 = 'qwe123' print(str7.isdigit()) # False print('123'.isdigit()) # True print('123.123'.isdigit()) # False
需要了解的操作
1.查詢指定字元對應的索引值 s1 = 'jason justin kevin tony' print(s1.find('s')) # 從左往右查詢 查詢一個就結束 print(s1.find('k', 1, 9)) # -1 意思是沒有 找不到 print(s1.index('s')) print(s1.index('k', 1, 9)) # 找不到直接報錯 不推薦使用 2.文字位置改變 name = 'tony' print(name.center(30, '-')) # -------------tony------------- print(name.ljust(30, '*')) # tony************************** print(name.rjust(30, '$')) # $$$$$$$$$$$$$$$$$$$$$$$$$$tony print(name.zfill(50)) # zero 零 0000000000000000000000000000000000000000000000tony 3.特殊符號:斜槓與一些英文字母的組合會產生特殊的含義 print('ja\tson\nke\avin') '''如果想取消它們的特殊含義 可以在字串的前面加一個字母r''' print(r'ja\tson\nke\avin') 4.capitalize,swapcase,title 4.1 captalize:首字母大寫 message = 'hello everyone nice to meet you!' message.capitalize() Hello everyone nice to meet you! 4.2 swapcase:大小寫翻轉 message1 = 'Hi girl, I want make friends with you!' message1.swapcase() hI GIRL, i WANT MAKE FRIENDS WITH YOU! 4.3 title:每個單詞的首字母大寫 msg = 'dear my friend i miss you very much' msg.title() Dear My Friend I Miss You Very Much
列表內建方法
1.型別轉化 print(list('春遊去動物園')) # ['春', '遊', '去', '動', '物', '園'] print(list({'name': '春遊去動物園', 'password': 123})) # ['name', 'password'] print(list((11, 22, 33, 44, 55))) # [11, 22, 33, 44, 55] print(list({1, 2, 3, 4, 5})) # [1, 2, 3, 4, 5] """ list可以轉換支援for迴圈的資料型別 可以被for迴圈的資料型別 字串 列表 字典 元組 集合 """ 2.常見操作 data = ['春', '遊', '去', '動', '物', '園'] 1.索引取值 print(data[0]) # 春 2.切片操作 print(data[1:3]) # ['遊', '去'] print(data[-1::-1]) # ['園', '物', '動', '去', '遊', '春'] 3.間隔 print(data[1:5:2]) # ['遊', '動'] 4.統計列表中元素的個數 print(len(data)) # 6 5.成員運算 最小判斷單位是元素不是元素裡面的單個字元 print('春' in data) # True print('111' in data) # False 6.列表新增元素的方式 1.尾部追加'單個'元素 data.append('去') print(data) # ['春', '遊', '去', '動', '物', '園', '去'] data.append(['遊樂園']) print(data) # ['春', '遊', '去', '動', '物', '園', '去', ['遊樂園']] 2.指定位置插入'單個'元素 data.insert(0, '我') print(data) # ['我', '春', '遊', '去', '動', '物', '園'] data.insert(4, '去哪') print(data) # ['我', '春', '遊', '去', '去哪', '動', '物', '園'] 3.合併列表 data.extend([11, 22, 33, 44, 55]) print(data) # ['春', '遊', '去', '動', '物', '園', 11, 22, 33, 44, 55] '''extend其實可以看成是for迴圈+append''' data += [11,22,33,44] # 加號的效率不高 7.刪除 1.通用的刪除方式 del data[0] print(data)#['遊', '去', '動', '物', '園'] 2.指名道姓的直接刪除某個元素 data.remove('去') print(data) # ['春', '遊', '動', '物', '園'] 3.延遲刪除 data.pop() # 預設是尾部彈出 print(data) # ['春', '遊', '去', '動', '物'] data.pop(1) print(data) # ['春', '去', '動', '物', '園'] data.pop(0) print(data) # ['遊', '去', '動', '物', '園'] 8.修改列表元素 data[0] = '秋' print(data) # ['秋', '遊', '去', '動', '物', '園'] 9.排序 data_number = [1, 5, 3, 6, 8, 0, 66] data_number.sort() # 預設是升序 print(data_number) # [0, 1, 3, 5, 6, 8, 66] data_number.sort(reverse=True) #降序 print(data_number) # [66, 8, 6, 5, 3, 1, 0] 10.反轉 data.reverse() #順序顛倒,(前面的到後面去) 11.比較運算 s1 = [11, 22, 33] s2 = [1, 2, 3, 4, 5, 6, 7, 8] print(s1 > s2) # True """列表在做比較的時候 其實比的是對應索引位置上的元素""" s1 = ['A', 'B', 'C'] # A>>>65 s2 = ['a'] # a>>>97 print(s1 > s2) # False """如果比較的2個是字母,將會根據字母的ASCII碼值來進行比較。""" 12.統計列表中某個元素出現的次數 l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33] print(l1.count(11)) # 統計元素11出現的次數 l1.clear() # 清空列表
可變型別和不可變型別
可變資料型別:列表list和字典dict;不可變資料型別:整型int、浮點型float、字串型string和元組tuple。
"""
可變型別與不可變型別
可變型別 列表
值改變 記憶體地址不變 修改的是本身
不可變型別 字串
值改變 記憶體地址肯定遍 修改過程產生了新的值
如何檢視變數的'記憶體地址'
id(變數名)
"""
佇列和堆疊
Stack(棧):資料先進後出,類比放盤子,最先放的盤子最後拿出;最後放的盤子最先拿出
進棧:向一個棧插入新元素,它是把新元素放到棧頂元素的上面,變成新的棧頂元素;
出棧:從一個棧刪除元素,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。
(2)在隊尾新增元素,在隊頭刪除元素。