在 Python 中将字符串拆分为列表

使用 str.split() 方法将字符串拆分为列表,例如 my_list = my_str.split(',')。 str.split() 方法接受一个分隔符参数,并在每次出现提供的分隔符时拆分字符串。

# ✅ 在每次出现分隔符时拆分字符串
my_str = 'one,two,three,four'

my_list = my_str.split(',')
print(my_list)  # ?️ ['one', 'two', 'three', 'four']

# --------------------

# ✅ 将字符串拆分为字符列表

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 个参数:

  • separator 在每次出现分隔符时将字符串拆分为子字符串
  • 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']

过滤器函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。

如果为函数参数传递 None ,则可迭代的所有虚假元素都将被删除。

注意 filter() 函数返回一个过滤器对象,所以我们必须使用 list() 类将过滤器对象转换为列表。

有时我们可能必须使用 X 和 Y 分隔符拆分字符串。

一种简单的方法是使用 str.replace() 方法将所有出现的 X 替换为 Y,然后在 Y 上拆分字符串。

my_str = 'one-two three-four'

my_list = my_str.replace('-', ' ').split(' ')
print(my_list)  # ?️ ['one', 'two', 'three', 'four']

我们用空格替换了所有出现的连字符,然后在空格上拆分字符串。

我们可以通过用连字符替换字符串中的空格并在连字符上拆分来获得相同的结果。