在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循环和切片
算法(步骤)
执行所需任务的以下是算法/步骤−。
- 创建一个变量来存储输入字符串。
-
打印输入字符串。
-
创建一个变量来存储输入自定义长度列表。
-
为存储结果列表创建一个空列表。
-
初始化start index为0。
-
使用 for循环 遍历自定义长度列表的每个元素。
-
使用 append() 函数(将元素添加到列表的末尾)来追加在给定索引之间切片的结果。
-
将start index的值增加与自定义长度列表元素相同的值。
-
按给定自定义长度拆分输入列表后,打印结果列表。
示例
以下程序使用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']
结论
在本文中,我们学习了如何使用2种不同的方法将给定的字符串拆分为不同的长度。此外,我们学习了如何使用iter()方法迭代字符串以及使用next()函数获取字符串的前n个字符。