一、基礎知識
字符串和列表是Python中最常用的數據類型之一。字符串是由若干字符組成的序列,而列表則是由若干任意類型的元素組成的序列。在Python中,字符串和列表的互相轉換是一個非常基本的操作,很多實際的編程任務都需要進行這樣的轉換。
在Python中,將字符串轉換為列表非常簡單,只需要使用字符串的split()方法即可。split()方法可以通過指定分隔符(默認為空格)將字符串分割成若干個子字符串,並將它們以列表的形式返回。
s = "apple banana orange" lst = s.split() print(lst) # ['apple', 'banana', 'orange']
還可以使用join()方法將列錶轉換為字符串。join()方法將列表中的所有元素使用指定的分隔符連接起來,並返回連接後的字符串。
lst = ['apple', 'banana', 'orange'] s = " ".join(lst) print(s) # 'apple banana orange'
二、常見用法
1. 以逗號分隔的字符串轉換為列表
逗號分隔的字符串(CSV,Comma Separated Values)是一種常見的數據交換格式,在實際的編程中經常需要將這種格式的數據轉換為列表。可以使用字符串的split()方法將逗號分隔的字符串轉換為列表:
s = 'apple,banana,orange' lst = s.split(',') print(lst) # ['apple', 'banana', 'orange']
2. 將包含多行文本的字符串轉換為列表
如果要將包含多行文本的字符串轉換為列表,可以使用splitlines()方法。splitlines()方法將字符串按照行分隔符分割,並返回一個包含所有行的列表。
s = "apple\nbanana\norange" lst = s.splitlines() print(lst) # ['apple', 'banana', 'orange']
3. 將包含數字的字符串轉換為數字列表
如果字符串中包含數字,可以使用列表推導式將其轉換為數字列表:
s = "1 2 3 4 5" lst = [int(x) for x in s.split()] print(lst) # [1, 2, 3, 4, 5]
這裡使用了int()函數將每個元素轉換為整數類型。
三、高級技巧
1. 使用正則表達式進行分割
除了使用字符串的split()方法之外,還可以使用正則表達式進行字符串分割。Python中的re模塊提供了多種正則表達式相關的方法,其中split()方法可以按照正則表達式對字符串進行分割,並返回一個列表。
import re s = "apple,banana;orange" lst = re.split(',|;', s) print(lst) # ['apple', 'banana', 'orange']
這裡使用了’|’符號表示逗號或分號。
2. 將列表中的元素轉換為指定類型
如果需要將列表中的元素全部轉換為指定類型,可以使用map()函數結合列表推導式來完成。map()函數接收兩個參數,第一個參數是一個函數,第二個參數是一個可迭代的對象,map()會對可迭代對象中的每個元素依次應用函數,並返回一個新的迭代器。
lst = ['1', '2', '3', '4'] lst = [int(x) for x in lst] print(lst) # [1, 2, 3, 4] lst = ['1', '2', '3', '4'] lst = list(map(int, lst)) print(lst) # [1, 2, 3, 4]
這裡將字符串列表中的元素全部轉換為整數類型。
3. 使用filter()函數過濾列表中的元素
如果需要從列表中篩選出符合條件的元素,可以使用filter()函數結合lambda表達式來完成。filter()函數接收兩個參數,第一個參數是一個函數(一般使用lambda表達式),第二個參數是一個可迭代的對象。filter()會對可迭代對象中的每個元素依次應用函數,根據函數的返回值決定是否將元素保留在返回的新列表中。
lst = ["apple", "banana", "orange", "watermelon"] lst = list(filter(lambda x: len(x) > 5, lst)) print(lst) # ['banana', 'orange', 'watermelon']
這裡使用了lambda表達式來篩選列表中長度大於5的元素。
四、總結
本文主要介紹了Python中字符串和列表之間的轉換方法。在實際的編程中,字符串和列表的轉換是一個非常基本的操作,熟練掌握這些方法可以為我們的編程工作帶來很大的便利。
原創文章,作者:WQXDV,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/369111.html