1. 程式人生 > >python中字串(str)常用操作總結

python中字串(str)常用操作總結

# 字串的常用操作方法 (都是形成新的字串,與原字串沒有關係。)

1、字串的基本操作之切片

s = 'python hello word'
# 取首不取尾,取尾要+1
# 切片取出來的字串與原字串無關
print(s[6: 10])
print(s[7:: 2])

# 反向取數字需要加上反向步長
print(s[-1: -4: -1])
print(s[-1: 2]) # 取不到資料

2、把字串全部大寫或小寫upper, lower

s = 'sssdJJIs sdf'
print(s.upper())    # 全部大寫
print(s.lower())    # 全部小寫

3、判讀以xx開頭或結尾startswith,endswith

s = 'alexttttt'
print(s.startswith('a'))    # 判斷是否以xx開頭
print(s.startswith('e', 2)) # 可切片
print(s.endswith('t'))    # 判斷是否以xx結尾

4、查詢元素find ,index

s = 'chhengt'
print(s.find('h'))  # 通過元素找索引找到第一個就返回(可切片)
print(s.find('t', 3))
print(s.find('b'))  # 找不到返回 -1
print(s.index(9)) # 找不到會報錯

5、strip 預設去除字元前後兩端的空格, 換行符, tab

s = 'qqwalex qqwusir barryy'
print(s.strip('qqw'))
print(s.strip(''))
print(s.lstrip('yy'))
print(s.rstrip('yy'))

6、split 把列表分割成字串

# 分割出的元素比分隔符數+1  ***
# 字串變成->>>列表
s = 'qqwalex qqwusir barryy'
s1 = 'qqwale;x qqwu;sir bar;ryy
' print(s.split()) # 預設以空格分割 print(s1.split(';')) # 以指定字元分割 print(s1.split(';', 1)) # 指定分割多少個

7、join把字串轉成列表

# 列表轉化成字串 list --> str
s = 'alex'
li = ['aa', 'ddj', 'kk']    # 必須全是字串
s1 = '_'.join(s)
print(s1)
s2 = ' '.join(li)
print(s2)

8、is系列

# 字串.isalnum()    所有字元都是數字或者字母,為真返回 Ture,否則返回 False。
# 字串.isalpha()     所有字元都是字母,為真返回 Ture,否則返回 False。
# 字串.isdigit()     所有字元都是數字,為真返回 Ture,否則返回 False。
# 字串.islower()    所有字元都是小寫,為真返回 Ture,否則返回 False。
# 字串.isupper()    所有字元都是大寫,為真返回 Ture,否則返回 False。
# 字串.istitle()            所有單詞都是首字母大寫,為真返回 Ture,否則返回 False。
# 字串.isspace()    所有字元都是空白字元,為真返回 Ture,否則返回 False。    

# is 系列
name = 'taibai123'
print(name.isalnum())   # 字串由數字或字母組成時返回真
print(name.isalpha())   # 字元只由字母組成時返回真
print(name.isdigit())   # 字元只由數字組成時返回真

9、count 計算字串中某個字元出現的次數 ***

# count 計算字串中某個字元出現的次數  ***
s = 'fjdsklf;jdskafjdsaflsdfsdfsdafsdgsfda'
print(s.count('f'))
print(s.count('f',1,))

10、replace***  替換字串中指定的字元

s = 'asdf 之一,asdf也,asdf'
# replace  ***
s1 = s.replace('Alex', '日天')
s1 = s.replace('Alex', '日天', 1)
print(s1)

 

11、format格式化輸出

# format 格式化輸出  ***
# 第一種方式:
s = '我叫{}, 今年{}, 性別{}'.format('小五', 25, '')
print(s)
# 第二種方式
s1 = '我叫{0}, 今年{1}, 性別{2},我依然叫{0}'.format('小五', 25, '')
print(s1)
# 第三種方式
s2 = '我叫{name}, 今年{age}, 性別{sex},我依然叫{name}'.format(age=25, sex='',name='小五',)
print(s2)

 

12、capitalize() 首字母大寫 **

s = 'chenziwu'
# capitalize() 首字母大寫 **
s1 = s.capitalize()
print(s1)

 

13、center() 將字串居中可以設定總長度,可以設定填充物 *

# center() 將字串居中可以設定總長度,可以設定填充物 *
s = 'chenziwu'
s2 = s.center(50)
s2 = s.center(50, '*')
print(s2)

 

14、swapcase 大小翻轉  *

s = 'CHenziwu'
# swapcase 大小翻轉  *
s3 = s.swapcase()
print(s3)

 

15、title  非字母隔開的每個單詞的首字母大寫 *

s = 'chen wuang4fhsa¥fh。f'
# title  非字母隔開的每個單詞的首字母大寫 *
s4 = s.title()
print(s4)