Python 程序将字符串分割成 N 等份
在 Python 中,可以使用切片方法将字符串分割成 N 等份。通过指定子字符串的起始和结束索引,可以使用 Python 切片方法提取等长的子字符串。在这篇文章中,我们将了解如何使用 Python 切片方法将字符串分割成 N 等份。
要将字符串分割成 N 等份,我们需要创建一个函数,该函数将原始字符串和要分割的字符串的份数作为输入,并返回生成的 N 个等长的字符串。如果字符串包含一些无法分配到 N 等份中的额外字符,我们将它们添加到最后一个子字符串中。
示例 1
在下面的示例代码中,我们创建了一个名为 divide_string 的方法,它将原始字符串和要分割的字符串的份数作为输入,并将 N 个等长的子字符串作为输出返回。divide_string 函数执行以下操作:
通过将原始字符串的长度除以份数 (N) 来计算每个子字符串的长度。
使用列表推导式将字符串分割成 N 份。我们从索引 0 开始,以 part_length (length_of_string/N) 为步长移动,直到到达字符串的末尾。
如果有一些额外的剩余字符未添加到子字符串中,我们将它们添加到最后一个子字符串部分。
返回 N 个等长的子字符串。
def divide_string(string, parts): # Determine the length of each substring part_length = len(string) // parts # Divide the string into 'parts' number of substrings substrings = [string[i:i + part_length] for i in range(0, len(string), part_length)] # If there are any leftover characters, add them to the last substring if len(substrings) > parts: substrings[-2] += substrings[-1] substrings.pop() return substrings string = "abcdefghi" parts = 3 result = divide_string(string, parts) print(result)
输出
['abc', 'def', 'ghi']
示例 2
在下面的示例中,字符串的长度为 26,需要将其分割成 6 等份。因此,每个子字符串的长度将为 4。但是,在将字符串分割成 6 份后,字符串中有 2 个字符是额外的,它们将添加到最后一个子字符串中,如输出所示。
def divide_string(string, parts): # Determine the length of each substring part_length = len(string) // parts # Divide the string into 'parts' number of substrings substrings = [string[i:i + part_length] for i in range(0, len(string), part_length)] # If there are any leftover characters, add them to the last substring if len(substrings) > parts: substrings[-2] += substrings[-1] substrings.pop() return substrings string = "Welcome to tutorials point" parts = 6 result = divide_string(string, parts) print(result)
输出
['Welc', 'ome ', 'to t', 'utor', 'ials', ' point']
结论
在本文中,我们了解了如何使用 Python 切片功能将字符串分割成 N 等份。每个子字符串的长度是通过将字符串的长度除以 N 计算的,如果在字符串分割后还有任何剩余的字符,则将其添加到最后一个子字符串中。这是一种有效的方法来将字符串分割成 N 等份。
广告