python 字符串常用操作
字符串常用方法
capitalize()
String.capitalize() 將字符串首字母變為大寫
name = ‘xiaoming‘ new_name = name.capitalize() print(new_name)
運行結果:
Xiaoming
count()
String.count() 統計字符出現的次數
name = ‘xiaoming‘ name_num = name.count(‘i‘) print(name_num) # 2
center()
String.center()
#打印輸出字符,讓字符串放在中間 name = ‘Libai‘ print(name.center(50,‘*‘))
輸出結果如下:
**********************Libai***********************
endswith()
String.endswith() 判斷是否以指定的字符串結尾
name = ‘Libai‘ new_val = name.endswith(‘bai‘) print(new_val)
結果為:
True
find()
String.find() 查找字符串在原字符串中的位置,返回所在索引值
name = ‘this is test plaintext‘ print(name.find(‘this‘)) print(name.find(‘is‘))
在find()方法中,同樣可以使用切片。
name = ‘this is test plaintext‘ test_val = name[name.find(‘test‘):12] print(test_val) #test
字符串的切片用法與列表的使用方式一致。
format()
String.format() 輸出指定的內容
user_show_name = ‘hello,{name},welcome to here,do you like ,{name}‘ print(user_show_name.format(name=‘yanyan‘))
輸出效果如下:
hello,yanyan,welcome to here,do you like ,yanyan
format_map()
String.format_map() 將字典中的參數傳遞進字符串中,輸出
hello = "My name is {name},I am {age} years old.I like {hobby}" # 使用format_map()方法來傳遞值 print(hello.format_map({‘name‘:‘yanyan‘,‘age‘:19,‘hobby‘:‘music travel‘}))
isalnum()
String.isalnum() 判斷字符串中是否全部為數字或者英文
test_str01 = ‘helloIam19yearsold‘ test_str02 = ‘hello,I am 19 years old‘ print(test_str01.isalnum()) # True print(test_str02.isalnum()) # False
isalnum()方法判斷字符串中是否全部為數字或者英文,符合就返回True,不符合就返回False,如果裏面包含有符號或者空格之類的特殊字符也會返回False。
isalpha()
String.isalpha() 判斷字符串中是否全部為純英文字符
test_str03 = ‘hello I love you‘ test_str04 = ‘helloILoveYou‘ print(test_str03.isalpha()) # False print(test_str04.isalpha()) # True
isdigit()
String.isdigit() 判斷字符串中是否全部為整數
# isdigit() 判斷是否為整數 print(‘123‘.isdigit()) # True print(‘hello‘.isdigit()) # False
isidentifier()
String.isidentifier() 判斷是不是一個合法的標識符
# isidentifier() 判斷是不是一個合法的標識符 print(‘test‘.isidentifier()) # True print(‘12‘.isidentifier()) # False print(‘_aa‘.isidentifier()) # True
判斷字符串是否全部為大寫或者小寫
# islower() 判斷字符串是否全部是小寫 print(‘Hello,world‘.islower()) # False # isupper() 判斷字符串是否全部為大寫 print(‘Hello,world‘.isupper()) # False
join()
sep.join(seq) 連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串
# 創建一個列表 name = [‘張學友‘,‘劉德華‘,‘郭富城‘,‘黎明‘] print(‘--‘.join(name))
輸出結果如下:
張學友--劉德華--郭富城--黎明
ljust()
String.ljust(size,替換符號) 從前向後開始計算,當字符串的長度超過size時,超過部分用替換符號替代
rjust()
String.rjust(size,替換符號) 從後向前開始計算,當字符串的長度超過size時,超過部分用替換符號替代
lower 將字符串大寫變成小寫
String.lower()
# 創建一個字符串 str = "hello,I am LiBai,I am 23 years old ,I like travel" # lower 將字符串大寫變成小寫 print(str.lower())
upper 將字符串小寫變成大寫
String.upper()
# 創建一個字符串 str = "hello,I am LiBai,I am 23 years old ,I like travel" # 將字符串小寫變成大寫 print(str.upper())
Tip:上面的lower()方法和upper()方法改變字符串後將改變的結果返回,但是原本的字符串並不會改變。
lstrip 去掉字符串左邊的空格或者回車
String.lstrip()
print(‘-----------‘) # 創建一個字符串 str = "\nhello,I am LiBai,I am 23 years old ,I like travel" print(str.lstrip())
輸出結果如下:
-----------
hello,I am LiBai,I am 23 years old ,I like travel
除了lstrip 還有rstrip和 strip方法。
replace 替換
String.replace(old,new,count) 將字符串中的old字符替換為New字符,count為替換的個數
str = ‘hello,world,hello‘ print(str.replace(‘hello‘,‘Hello‘,1))
輸出的效果如下:
Hello,world,hello
split
String.split() 切割
str = ‘hello,world,hello‘ # 默認以空格為分割 print(str.split()) # [‘hello,world,hello‘] 單詞之間沒有空格,所以所有的內容為一個元素 # 以o為分割 print(str.split(‘o‘)) # [‘hell‘, ‘,w‘, ‘rld,hell‘, ‘‘] # 以逗號分割 print(str.split(‘,‘)) # [‘hello‘, ‘world‘, ‘hello‘]
splitlines() 以換行為分割
String.splitlines()
str = ‘hello,\nworld,\nhello‘ print(str.splitlines()) # [‘hello,‘, ‘world,‘, ‘hello‘]
Tip:補充,python中的字符串並不允許修改值,只允許覆蓋值。
情況如下:
# 創建字符串 str = ‘hello,world‘ print(str[0]) # h # 嘗試去修改 str[0] = ‘H‘ print(str) # TypeError: ‘str‘ object does not support item assignment # 下面這種情況是我們常見的情況,其實是屬於一種字符串之前的值被新的值覆蓋掉了 str = ‘Hello,YanYan‘ print(str) # Hello,YanYan
python 字符串常用操作