Python字符串拆分
Python字符串split()函数用于根据定界符将字符串拆分为字符串列表。
Python字符串拆分
Python字符串split()函数语法为:
str.split(sep=None, maxsplit=-1)
sep参数用作分隔符。
如果字符串包含连续的定界符,则返回一个空字符串。
分隔符参数也可以是多个字符。
如果未提供定界符或者"无",则将空格视为定界符。
在这种情况下,如果存在前导或者尾随空格,则不会返回任何空字符串。
同样,多个空格将被视为单个定界符。
如果提供了maxsplit,则最多完成maxsplit个拆分(因此,列表中最多包含maxsplit + 1个元素)。
如果未指定maxsplit或者-1,则对拆分数没有限制,并且所有可能的拆分均返回列表中。
Python字符串split()示例
让我们看一个简单的示例,其中将根据指定的分隔符将字符串拆分为列表。
s = 'Python is Nice' # simple string split example str_list = s.split(sep=' ') print(str_list)
输出:
['Python', 'is', 'Nice']
字符串split()与maxsplit示例
s = 'Python is Nice' str_list = s.split(sep=' ', maxsplit=1) print(str_list)
输出:['Python','is Nice']
请注意,返回的列表只有2个项目,字符串仅被拆分了一次。
未提供sep或者无
s = ' Java Python iOS Android ' str_list = s.split() print(str_list)
输出:['Java','Python','iOS','Android']
返回列表中将忽略前导空格和尾随空格。
同样,连续的空格也被视为单个定界符。
多行字符串拆分示例
multiline_str = 'Hi There\nHow are you?\nI am fine' multiline_str_split_list = multiline_str.split(sep='\n') for s in multiline_str_split_list: print(s)
输出:
Hi There How are you? I am fine
多字符分隔符示例
s = 'Hi||Hello||Adios' str_list = s.split('||') print(str_list)
输出:['Hi','Hello','Adios']
str.split()函数示例
我们也可以直接从str类使用split()函数。
print(str.split('ABACAD', sep='A')) print(str.split('ABACAD', sep='A', maxsplit=2))
输出:
['', 'B', 'C', 'D'] ['', 'B', 'CAD']
请注意,当第一个字符与分隔符匹配时,将返回空字符串。
用户输入的CSV字符串拆分示例
最后,让我们看一个真实的示例,在该示例中,用户将输入CSV数据,然后将其拆分为字符串列表。
input_csv = input('Please enter CSV Data\n') input_csv_split_list = input_csv.split(sep=',') print('Input Data Length =', len(input_csv_split_list)) print('List of inputs =', input_csv_split_list)
输出:
Please enter CSV Data Java,Android,Python,iOS,jQuery Input Data Length = 5 List of inputs = ['Java', 'Android', 'Python', 'iOS', 'jQuery']
这就是python字符串split()函数示例的全部内容。
这是一个非常有用的功能,可以根据一些定界符将字符串分割成列表。
Python字符串rsplit()
Python字符串rsplit()函数与split()函数非常相似。
唯一的区别是分割从字符串的末尾开始一直到最前面。
让我们看一些rsplit()函数示例。
# rsplit() example s = 'Python is Awesome' str_list = s.rsplit(sep=' ') print(str_list) str_list = s.rsplit(sep=' ', maxsplit=1) print(str_list) s = ' Java Python iOS Android ' str_list = s.rsplit() print(str_list) multiline_str = 'Hi There\nHow are you?\nI am fine' multiline_str_split_list = multiline_str.rsplit(sep='\n') for s in multiline_str_split_list: print(s) s = 'Hi||Hello||Adios' str_list = s.rsplit('||') print(str_list) # using split() with str class print(str.rsplit('ABACAD', sep='A')) print(str.rsplit('ABACAD', sep='A', maxsplit=2)) # csv and user input example input_csv = input('Please enter CSV Data\n') input_csv_split_list = input_csv.rsplit(sep=',') print('Input Data Length =', len(input_csv_split_list)) print('List of inputs =', input_csv_split_list)
输出:
['Python', 'is', 'Awesome'] ['Python is', 'Awesome'] ['Java', 'Python', 'iOS', 'Android'] Hi There How are you? I am fine ['Hi', 'Hello', 'Adios'] ['', 'B', 'C', 'D'] ['AB', 'C', 'D'] Please enter CSV Data x,y,z Input Data Length = 3 List of inputs = ['x', 'y', 'z']
注意,当提供maxsplit参数时,差异是可见的。
否则,split()和rsplit()函数的输出相同。