1. 程式人生 > 其它 >字串與列表的內建方法

字串與列表的內建方法

目錄

字串的內建方法

# 可以通過句點符(.) 檢視資料有那些方法
# 通過ctrl + 滑鼠左鍵 檢視方法底層原始碼
1. # 大小寫轉換
res = 'JaSoN222'
1. upper: 全部轉換為大寫   eg: print(res.upper()) 輸出為:JASON222
2. lower: 全部轉換為小寫   eg: print(res.lower()) 輸出為:jason222
 
# 可應用於使用者書寫驗證碼的大小寫問題
# 這樣就可以全部轉為大寫或全部轉為小寫作為比對

eg: real_code = JaSoN
    new_code = input('請輸入正確的驗證碼:')
    if new_code.upper() == real_code.upper():   #輸入lower同理
        print('歡迎進入')
    else:
        print('驗證發輸入錯誤')
        
# 判斷是否為純大寫或純小寫
print(res.isupper())
print(res.islower())

2. #判斷字串是否以指定的字元開頭 startswith
res = 'my name is jason'
print(res.startswith('m'))  輸出為:True
print(res.startswith('i')) 輸出為: False
print(res.startswith('my')) 輸入為: True #可為多個字元
  #判斷字串是否以指定的字元結尾 endswith
print(res.endswith('j'))  輸出為: False
print(res.endswith('n'))   輸出為: False
print(res.endswith('jason')) 輸出結果為:  False

3. #格式化輸出 format
   第一種為: %s佔位符
   第二種為: 使用{},相當於%s佔位符
eg:
    mes = 'my name is{} my age is {}'
    print(mes.format('gary','20'))  #輸出為 my name is gary my age is 20
   第三種: {}大括號內 可以新增索引取值打破順序 並且可以反覆使用相同位置的資料
eg:
    mes = 'my name is {0} my age is {1} my oldname is {0} today age is {1}'
    print(mes.format('jason, 20')) 
    #輸出為: my name is jason my age is 20 my oldname is jason today age is 20
    第四種:{}大括號內可直接寫變數名
eg:
    mes = 'my name is {name1} my age is {age1} my oldname is {name1} birth is {age2}'
    print(mes.format(name1 = 'jason', age1 = 20, age2 = 1999))
    #輸出為:my name is jason my age is 20 my oldname is jason birth is 1999

    
4. #字串的拼接
方式1 : 字串直接相加
    print('hello' + 'world')
    輸出為: helloworld
方式2 : join方法
    name_list = ['gary', 'jason', 'tony', 'jack']
    print('|'.join(name_list))
    輸出為:gary|jason|tony|jack
# 注: 必須為字串型別(在python中不同的資料型別之間無法直接操作)
      a1 = ['jason', 222, 'sss']
    print('|'.join(a1))      這樣就會報錯
5. #替換字串中指定的字元
mes = 'my name is jason my age is 10'  將jason 替換為 gary
print(mes.replace('jason', 'gary'))  # 輸出為 my name is gary my age is 10

# 替換指定個數的文字
mes = 'my name is jason jason jason my age is 12' 
print(mes.replace('jason', 'gary')) # 輸出為 my name is gary gary gary my age is 12
print(mes.replace('jason', 'gary', 1)) # 只更換第一個文字
# 輸出為 my name is gary jason jason my age is 12

6. # 判斷字串是否為純數字
psw = 'jason2222'
print (psw.isdigit()) # False
psw = '2222'
print (psw.isdigit()) # True
eg:
    guess_age = input('請輸入你猜的年齡:')
    if guess_age.isdigit():
        guess_age = int(guess_age)
    else:
        print('請輸入正確的格式')
        
# 不常用方法
1. 所有單詞首字母大寫
mes = 'my name is jason'
print(mes.title())   # 輸出為:My Name Is Jason、
2. 開頭的單詞首字母大寫
mes = 'my name is jason'
print(mes.capitalize())  # 輸出為: My name is Jason
3. 大小寫互換
mes = 'XxX is HandSOme'
print(mes.swapcase())  # 輸出為:xXx IS hANDsoME
4. 查詢指定字元對應的起始索引值 從左往右找到第一個就結束
mes = 'my name is jason'
print(mes.find('m'))    # 輸出為: 0
# 如果找不到 返回 -1 
print(mes.find('z'))  # 輸出為:-1
# 如果為 index 找不到則直接報錯
print(mes.find('z'))  # 直接報錯
5. 統計某個字元出現的次數
mes = 'my name is mark'
print(mes.count('m')) # 輸出為:3
6. 居中展示 
 name = 'jason'
 print(s8.center(15, '$'))  # 居中展示
 print(s8.ljust(15, '&'))  # 左對齊   jason&&&&&&&&&&
 print(s8.rjust(15, '*'))  # 右對齊   **********jason
7. 判斷字串包含的內容
 name = 'tony123'
 name.isalnum()  # 字串中既可以包含數字也可以包含字母
 name.isalpha()  # 字串中只包含字母

列表的基本用法

1. 修改值
name_list = ['jason', 'kevin', 'tony', 'jack']
name_list[0] = 1111
print(name_list)  # 輸出為[1111, 'kevin', 'tony', 'jack']
2. 新增值
方式 1  :在末尾新增括號內指定的資料
name_list.append(99)
print(name_list)  # 輸出為:['jason', 'kevin', 'tony', 'jack', 99]
方式 2 :插入元素(將括號內的資料當成一個整體插入到指定的索引位置)
name_list.insert(0,'jason1')
print(name_list) # 輸出為 :['jason1', jason', 'kevin', 'tony', 'jack']
name_list.insert(2. 'jason2')
print(name_list) # 輸出為 :[jason', 'kevin','jason2', 'tony', 'jack']
方式 3 :擴充套件元素
name_list.extend([1, 2, 2, 3, 4, 5])
print(name_list)  #  ['jason', 'kevin', 'tony', 'jack', 1, 2, 2, 3, 4, 5]
l1 = [1, 2, 3, 4, 5]
l2 = [11, 22, 33, 44, 55]
for i in l2:
    l1.append(i)  # 將l2中的資料追加到l1末尾
print(l1)
# 輸出為:[1, 2, 3, 4, 5, 11, 22, 33, 44, 55]

列表刪除資料

刪除資料
方式 1 :根據索引直接刪除
lis = [11, 22, 33, 44, 55]
del lis[1]  
print(lis)  # 輸出為 [11, 33, 44, 55]
方式 2 :remove() 括號內指定需要移除的元素值
lis.remove(11)
print(lis) # 輸出為[22, 33, 44, 55]
print(lis.remove(11))  # 則輸出為 None
方式 3 : pop()  括號內指定需要彈出的元素索引值 括號內如果不加引數的話預設彈出列表尾部元素
lis.pop()
print(lis)  # 輸出為[11, 22, 33, 44]
lis.pop(1)
print(lis)  # 輸出為[11, 33, 44, 55]

列表的其他用法


1. l1 = [55, 22, 11, 44, 33, 99, 88]
# l1.sort()  # 預設為升序
# print(l1)   # 輸出為[11, 22, 33, 44, 55, 88, 99]
# l1.sort(reverse=True)  # 預設為降序
# print(l1)   # 輸出為[99, 88, 55, 44, 33, 22, 11]
2. print(l1[:])  # 冒號兩邊不屑數字預設全都要
   print(l1[:5])  # 左邊不寫預設從頭(0)開始
   print(l1[1:])  # 右邊不寫預設到尾部
3. 兩個列表比較
ll1 = [999, 111]
ll2 = [111, 222, 333, 444, 555, 666, 777, 888]
print(ll1 > ll2)   # 輸出為True
# 列表比較運算採用相同的索引元素進行比較,值對比第一個元素得出結果
如果為字串比較也是按照索引位置內部轉成ASCII對應的數子比較