当然我们有:
"1,2,3".split(",") # ["1", "2", "3"]
"1".split(",") # ["1"]
Run Code Online (Sandbox Code Playgroud)
而且这在某些情况下有时会出现问题(*):
"".split(",") # [""]
Run Code Online (Sandbox Code Playgroud)
是否有一种内置方法(可能带有参数或特定函数)可以:
"".split(",", allow_empty=True) # []
Run Code Online (Sandbox Code Playgroud)
?
这(有时)是有意义的:输入为空,因此输出列表应该为空。
(*) 示例情况:
for element in s.split(","):
print(f"we have the element {element}")
# works for s = "1, 2, 3"
# works for s = "1"
# doesn't work for s = "" => the loop should be empty
Run Code Online (Sandbox Code Playgroud)
据我所知,但您可以使用正则表达式re.findall:
import re
re.findall(r'[^,]+', '1,2,3')
# ['1', '2', '3']
re.findall(r'[^,]+', '1')
# ['1']
re.findall(r'[^,]+', '')
# []
Run Code Online (Sandbox Code Playgroud)
请注意,这也会丢弃输入字符串中的空字符串:
re.findall(r'[^,]+', '1,,3')
# ['1', '3']
Run Code Online (Sandbox Code Playgroud)