一,字符串相關API
-
string.strip([chars])方法:移除字符串開頭和結尾的空白字符(如空格、制表符、換行符等),它不會修改原始字符串,而是返回一個新的處理后的字符串
chars(可選):指定要移除的字符集合(如 ‘abc’ 表示移除開頭 / 結尾的 ‘a’、‘b’、‘c’)。若不指定,則默認移除所有空白字符(空格、\t、\n、\r 等)。line = " Hello, World! \n" stripped_line = line.strip() # 移除開頭和結尾的空白字符 print(stripped_line) # 輸出: "Hello, World!"# 指定移除特定字符 text = "---Hello---" print(text.strip('-')) # 輸出: "Hello"
- 僅移除開頭和結尾的字符:strip() 不會處理字符串中間的空白字符
- 其他類似方法:
lstrip():僅移除左側(開頭)的字符。
rstrip():僅移除右側(結尾)的字符。
- string.split(sep=None, maxsplit=-1)方法:將字符串按指定的分隔符分割成多個子字符串,并返回一個包含這些子字符串的列表
sep(可選):指定分割字符串的分隔符。如果不指定,則默認使用任意空白字符(空格、制表符 \t、換行符 \n 等)作為分隔符。
maxsplit(可選):指定最大分割次數。如果指定為 n,則最多分割 n 次,返回 n+1 個子字符串。默認值為 -1,表示不限制分割次數。
-
按空格分割字符串
text = "Hello world! How are you?" words = text.split() # 不指定 sep,默認按空白字符分割 print(words) # 輸出: ['Hello', 'world!', 'How', 'are', 'you?']
-
按指定字符分割
csv_line = "apple,banana,orange,grape" fruits = csv_line.split(',') # 按逗號分割 print(fruits) # 輸出: ['apple', 'banana', 'orange', 'grape']
-
按制表符分割(TSV 格式)
tsv_line = "name\tage\tcity\nAlice\t25\tNew York" data = tsv_line.split('\t') # 按制表符分割 print(data) # 輸出: ['name', 'age', 'city\nAlice', '25', 'New York']
-
限制分割次數
ip_address = "192.168.1.1" parts = ip_address.split('.', 2) # 最多分割 2 次 print(parts) # 輸出: ['192', '168', '1.1']
-
連續分隔符的處理
如果分隔符連續出現,會在相應位置返回空字符串。
如果使用默認的空白字符分隔符,則會自動合并連續的空白字符。# 使用指定分隔符(如逗號) text = "a,,b,c" print(text.split(',')) # 輸出: ['a', '', 'b', 'c']# 使用默認分隔符(空白字符) text = " a b c " print(text.split()) # 輸出: ['a', 'b', 'c']
-
處理空字符串
empty_str = "" print(empty_str.split()) # 輸出: []# 指定分隔符時,空字符串會返回包含一個空字符串的列表 print(empty_str.split(',')) # 輸出: ['']
-
相關方法
-
rsplit():從右側開始分割,用法與 split() 相同。
text = "a.b.c.d" print(text.rsplit('.', 1)) # 從右側分割 1 次 # 輸出: ['a.b.c', 'd']
-
splitlines():專門用于按行分割字符串,處理不同的換行符(\n、\r、\r\n)。
text = "Line 1\nLine 2\rLine 3\r\nLine 4" print(text.splitlines()) # 輸出: ['Line 1', 'Line 2', 'Line 3', 'Line 4']
-
二,列表(list)
- extend()和append()方法: extend()用于將另一個可迭代對象(如列表、元組、集合等)的元素逐個添加到當前列表的末尾。這與 append() 方法不同,append() 是將整個對象作為一個元素添加到列表中。
方法 | 作用 |
---|---|
extend() | 將可迭代對象的元素展開后添加到列表末尾。 示例:[1, 2].extend([3, 4]) → [1, 2, 3, 4] |
append() | 將整個對象作為一個元素添加到列表末尾。 示例:[1, 2].append([3, 4]) → [1, 2, [3, 4]] |
示例說明
- 場景 1:使用 extend()
all_results = []
results = [['結果1'], ['結果2'], ['結果3']]all_results.extend(results)
print(all_results)
# 輸出:[['結果1'], ['結果2'], ['結果3']]
- 場景 2:使用 append()
all_results = []
results = [['結果1'], ['結果2'], ['結果3']]all_results.append(results) # 注意這里用的是 append
print(all_results)
# 輸出:[[['結果1'], ['結果2'], ['結果3']]] (嵌套列表)
常見應用場景
- 合并多個列表
list1 = [1, 2]
list2 = [3, 4]
list1.extend(list2)
print(list1) # 輸出:[1, 2, 3, 4]
- 批量添加元素
items = []
new_items = (5, 6, 7) # 元組
items.extend(new_items)
print(items) # 輸出:[5, 6, 7]
- 字符串擴展(字符串是可迭代對象)
chars = ['a', 'b']
chars.extend("cd")
print(chars) # 輸出:['a', 'b', 'c', 'd']
性能考慮
extend() 的效率:直接在原列表上修改,避免創建新列表,性能優于多次使用 append()。
適用場景:當需要批量添加元素時,優先使用 extend()。
- 使用 += 運算符
all_results = []
results = [1, 2, 3]
all_results += results # 等價于 all_results.extend(results)
- 列表生成式(創建新列表)
all_results = []
results = [1, 2, 3]
all_results = [*all_results, *results] # Python 3.5+ 支持