Python 按自定义长度分割字符串
在本文中,我们将学习如何使用Python按自定义长度来分割字符串。
使用的方法
以下是实现此任务的各种方法:
- 使用for循环和切片
-
使用列表解析、join()和next()函数
示例
假设我们已经采取了一个输入字符串和自定义长度列表。现在我们将使用上述方法按输入的自定义长度来分割输入字符串。
输入
inputString = 'hitutorialspoint'
customLengths = [4, 1, 6, 5]
结果
['hitu', 't', 'orials', 'point']
在上面的示例中,首先根据给定的自定义长度将输入列表分割-
4个字符 – ‘hitu’
1个字符 – ‘r’
6个字符 – ‘orials’
5个字符 – ‘point
方法1:使用for循环和切片
步骤
以下是要执行所需任务的算法/步骤-
- 创建一个变量来存储输入字符串。
-
打印输入字符串。
-
创建一个变量来存储输入的自定义长度列表。
-
创建一个空列表来存储结果列表。
-
将开始索引初始化为0。
-
使用 for循环 遍历自定义长度列表的每个元素。
-
使用 append() 函数(将元素添加到列表末尾)将在给定索引之间切片的结果添加到列表中。
-
将开始索引的值递增以与自定义长度列表元素相加。
-
在按给定自定义长度拆分输入列表后,打印结果列表。
示例
以下程序使用for循环和切片来通过给定的自定义长度拆分输入列表,并返回一个列表-
# input string
inputString = 'hitutorialspoint'
# printing input string
print("Input string: ", inputString)
# input custom lengths list
customLengths = [4, 1, 6, 5]
# empty list for storing a resultant list
outputList = []
# initializing start index as 0
startIndex = 0
# travsering through each element of the custom lengths list
for l in customLengths:
# appending the custom length string sliced from the
# starting index to the custom length element
outputList.append(inputString[startIndex: startIndex + l])
# Increment the start Index value with the custom length element
startIndex += l
# printing the resultant output list
print("Resultant list after splitting by custom lengths:\n", outputList)
输出
执行上述程序后,将生成以下输出结果 –
Input string: hitutorialspoint
Resultant list after splitting by custom lengths:
['hitu', 't', 'orials', 'point']
方法2:使用列表推导、join()和next()函数
列表推导
当您希望基于现有列表的值构建新列表时,列表推导提供了一种更简短、简洁的语法。
next()函数
返回迭代器(如列表、字符串元组等)中的下一项。如果迭代器达到末尾,可以添加一个默认返回值。
语法
next(iterable, default)
join()函数 − join()是Python中的一个字符串函数,用于连接元素,元素之间用一个字符串分隔符分隔。该函数连接序列元素以转换为字符串。
iter()函数
返回给定对象的迭代器。它创建一个一次迭代一个元素的对象。
语法
以下是该函数的语法。
iter(object, sentinel)
参数
- 对象(object) - 指定要创建迭代器的对象(例如列表、元组、集合等)
-
sentinel - 它是指示序列结束的唯一值。
步骤
以下是执行所需任务的算法/步骤:
- 使用 iter() 函数返回输入字符串的迭代器(通过字符串迭代)
-
遍历customLengths列表的每个元素,使用 next() 和 join() 函数将字符串的下一个l(迭代器值)个字符连接起来。
-
打印按给定自定义长度拆分输入列表后的结果列表。
示例
以下程序使用列表推导, join() 和 next() 函数,通过给定的自定义长度拆分输入列表后返回一个列表 –
# input string
inputString = 'hitutorialspoint'
# printing input string
print("Input string: ", inputString)
# input custom lengths list
customLengths = [4, 1, 6, 5]
# Getting the string as an iter object to iterate through it
stringitr = iter(inputString)
# traversing through each element of customLengths list and
# Joining the next l characters of the string
outputList = ["".join(next(stringitr) for i in range(l)) for l in customLengths]
# printing the resultant output list
print("Resultant list after splitting by custom lengths:\n", outputList)
输出
执行上述程序后,将产生以下输出:
Input string: hitutorialspoint
Resultant list after splitting by custom lengths:
['hitu', 't', 'orials', 'point']
结论
在本文中,我们学习了如何使用两种不同的方法将给定的字符串分割为不同的长度。此外,我们还学习了如何使用iter()方法迭代遍历字符串,并使用next()函数获取n个字符的字符串。