在 Python 中将字符串拆分为列表
Split a string into a list in Python
使用该str.split()
方法将字符串拆分为列表,例如
my_list = my_str.split(',')
. 该str.split()
方法采用分隔符参数并在每次出现所提供的分隔符时拆分字符串。
主程序
# ✅ split string on each occurrence of a separator my_str = 'one,two,three,four' my_list = my_str.split(',') print(my_list) # 👉️ ['one', 'two', 'three', 'four'] # -------------------- # ✅ split string into a list of characters my_str_2 = 'hello' my_list_2 = list(my_str_2) print(my_list_2) # 👉️ ['h', 'e', 'l', 'l', 'o']
我们使用该str.split()
方法将字符串拆分为列表。
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分(可选) |
如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。
主程序
my_str = 'one' my_list = my_str.split(',') print(my_list) # 👉️ ['one']
我们使用逗号作为分隔符,但您可以使用任何其他字符。
主程序
# 👇️ ['one', 'two', 'three'] print('one two three'.split(' ')) # 👇️ ['one', 'two', 'three'] print('one_two_three'.split('_')) # 👇️ ['one', 'two', 'three'] print('one.two.three'.split('.'))
分隔符不一定是单个字符,也可以是多个字符。
主程序
my_str = 'one, two, three, four' my_list = my_str.split(', ') print(my_list) # 👉️ ['one', 'two', 'three', 'four']
如果需要按空格拆分字符串,请调用str.split()
不带分隔符的方法。
主程序
my_str = 'a b \nc d \r\ne' my_list = my_str.split() print(my_list) # 👉️ ['a', 'b', 'c', 'd', 'e']
当在
str.split()
没有分隔符的情况下调用该方法时,它将连续的空白字符视为单个分隔符。如果您的字符串以特定分隔符开头或结尾,您将在列表中得到空字符串元素。
主程序
my_str = '-one-two-three-four-' my_list = my_str.split('-') print(my_list) # 👉️ ['', 'one', 'two', 'three', 'four', '']
您可以使用该filter()
函数从列表中删除任何空字符串。
主程序
my_str = '-one-two-three-four-' my_list = list(filter(None, my_str.split('-'))) print(my_list) # 👉️ ['one', 'two', 'three', 'four']
filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。
如果您传递
None
函数参数,则 iterable 的所有虚假元素都将被删除。注意filter()
函数返回一个filter
对象,所以我们必须使用list()
类将filter
对象转换为列表。
有时您可能必须使用X
和Y
分隔符拆分字符串。
一种简单的方法是使用该str.replace()
方法替换所有出现的X
withY
然后拆分字符串 on Y
。
主程序
my_str = 'one-two three-four' my_list = my_str.replace('-', ' ').split(' ') print(my_list) # 👉️ ['one', 'two', 'three', 'four']
我们用空格替换了所有出现的连字符,然后在空格处拆分字符串。
我们可以通过用连字符替换字符串中的空格并在连字符上拆分来获得相同的结果。