Python程序:去除字符串中长度为K的单词
在这篇文章中,我们将学习一个Python程序,用于去除字符串中长度为K的单词。
使用的方法
以下是完成此任务的各种方法:
使用split()、join()、len()和列表推导式
使用filter()、lambda()、split()和len()函数
使用split()、join()、remove()和len()函数
示例
假设我们已经输入了一个字符串和长度k。我们现在将使用上述方法从输入字符串中删除所有给定的长度为k的单词。
输入
inputString = "hello tutorialspoint python codes" k_length = 5
输出
Resultant string after removing 5 length words: tutorialspoint python
在这个例子中,给定的k长度为5,因此所有长度为5的单词,例如hello, codes,都将从输入字符串中删除,并打印结果字符串。
方法1:使用split()、join()、len()和列表推导式
列表推导式
当你希望基于现有列表的值构建新列表时,列表推导式提供了一种更短/更简洁的语法。
join() − join()是Python中的一个字符串函数,用于连接由字符串分隔符分隔的序列元素。此函数连接序列元素以转换为字符串。
算法(步骤)
以下是执行所需任务的算法/步骤:
创建一个变量来存储输入字符串并打印给定的字符串。
创建另一个变量来存储长度k。
使用split()函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)将输入字符串拆分为单词列表。
遍历words列表,检查当前元素的长度是否不等于输入的k长度,并将结果存储在一个列表中。
使用join()函数将列表转换为字符串。
从输入字符串中删除所有给定的长度为k的单词后,打印结果字符串。
示例
以下程序使用split()、join()、len()函数和列表推导式,返回删除输入字符串中所有长度为k的单词后的字符串:
# input string inputString = "hello tutorialspoint python codes" # printing the input string print("Input string: ", inputString) # input k length value k_length = 5 # splitting the input string into a list of words wordsList = inputString.split() # traversing through the words list and checking whether the length of # current string is not equal to input k length and storing it in a list resultList = [element for element in wordsList if len(element) != k_length] # joining the above list to a string to convert it to a string resultString = ' '.join(resultList) # printing resultant string after removing k-length words print("Resultant string after removing 5 length words:\n", resultString)
输出
执行上述程序后,将生成以下输出:
Input string: hello tutorialspoint python codes Resultant string after removing 5 length words: tutorialspoint python
方法2:使用filter()、lambda()、split()和len()函数
filter()函数 − 使用一个函数来过滤指定的序列,该函数确定序列中每个元素是否为真或假。
Lambda函数
Lambda函数,通常称为“匿名函数”,与普通的Python函数相同,只是它可以无需名称进行定义。普通的函数使用def关键字定义,而匿名函数使用lambda关键字定义。但是,它们仅限于单行表达式。它们与普通函数一样,可以接受多个参数。
语法
lambda arguments: expression
示例
以下程序使用filter()、lambda()、split()和len()函数,返回删除输入字符串中所有长度为k的单词后的字符串:
# input string inputString = "hello tutorialspoint python codes" # printing the input string print("Input string: ", inputString) # input k length value k_length = 5 # Splitting the input string into a list of words wordsList = inputString.split() # Traverse in the given words list and filter the list elements # if the length of the element is not equal to k using the lambda function. resultList = filter(lambda element: len(element) != k_length, wordsList) # Converting filter object to the list resultList = list(resultList) #joining the above list to a string to convert it to a string resultString = ' '.join(resultList) # printing resultant string after removing k-length words print("Resultant string after removing 5 length words:\n", resultString)
输出
执行上述程序后,将生成以下输出:
Input string: hello tutorialspoint python codes Resultant string after removing 5 length words: tutorialspoint python
方法3:使用split()、join()、remove()和len()函数
split() − 将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格。
remove()方法 − 删除具有给定值的元素的第一次出现。
语法
list.remove(obj)
示例
以下程序使用split()、join()、remove()和len()函数,返回删除输入字符串中所有长度为k的单词后的字符串:
# input string inputString = "hello tutorialspoint python codes" # printing the input string print("Input string: ", inputString) # input k length value k_length = 5 # splitting the input string into a list of words wordsList = inputString.split() # making a copy of the words list and traveling in that list for element in wordsList.copy(): # checking whether the length of current is equal to the input k length if len(element) == k_length: # removing that element if the condition is true wordsList.remove(element) # joining words list to string to convert to a string resultString = ' '.join(wordsList) # printing resultant string after removing k-length words print("Resultant string after removing 5 length words:\n", resultString)
输出
执行上述程序后,将生成以下输出:
Input string: hello tutorialspoint python codes Resultant string after removing 5 length words: tutorialspoint python
结论
在这篇文章中,我们学习了如何使用三种不同的方法从给定的单词列表中删除长度为k的词。我们还学习了如何使用lambda和filter函数根据指定条件过滤列表的元素。