在 Python 中用逗号分割字符串
Split a string by comma in Python
使用该str.split()
方法以逗号分隔字符串,例如
my_list = my_str.split(',')
. 该str.split
方法将在每次出现逗号时拆分字符串,并返回包含结果的列表。
主程序
# ✅ split string on each occurrence of comma my_str = 'one,two,three,four' my_list = my_str.split(',') print(my_list) # 👉️ ['one', 'two', 'three', 'four'] # ✅ split string on each space or comma my_str_2 = 'one two,three four five' my_list_2 = my_str_2.replace(',', ' ').split(' ') print(my_list_2) # 👉️ ['one', 'two', 'three', 'four', 'five']
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分(可选) |
如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。
主程序
my_str = 'one' my_list = my_str.split(',') # 👇️ ['one'] print(my_list)
如果字符串中以逗号分隔的单词之间有空格并且需要将其删除,请使用该str.strip()
方法。
主程序
my_str = 'one , two , three ,four' my_list = [item.strip() for item in my_str.split(',')] print(my_list) # 👉️ ['one', 'two', 'three', 'four']
我们使用列表理解从每个字符串中删除前导和尾随空格。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
str.strip方法返回删除
了前导和尾随空格的字符串副本。
如果您的字符串以逗号开头或结尾,您将在列表中得到空字符串元素。
主程序
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 的所有虚假元素都将被删除。所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
注意filter()
函数返回一个filter
对象,所以我们必须使用list()
类将filter
对象转换为列表。
如果您需要在出现逗号和另一个字符时拆分字符串,请将逗号替换为另一个字符并按该字符拆分。
主程序
my_str = 'one,two,three,four' my_str_2 = 'one two,three four five' my_list_2 = my_str_2.replace(',', ' ').split(' ') print(my_list_2) # 👉️ ['one', 'two', 'three', 'four', 'five']
我们用空格替换了所有出现的逗号,并在每个空格上拆分了字符串。
您可以通过将每次出现的空格替换为逗号并拆分每个逗号来获得相同的结果。
主程序
my_str = 'one,two,three,four' my_str_2 = 'one two,three four five' my_list_2 = my_str_2.replace(' ', ',').split(',') print(my_list_2) # 👉️ ['one', 'two', 'three', 'four', 'five']