使用 Python 查找包含字母和数字的单词
Python 是一种高级编程语言,它具有各种工具和内置函数来分析文本数据。此问题陈述是一项常见任务,它使用一些内置函数 - filter()、isdigit()、isalpha()、findall()、split() 和 append(),使用 Python 查找字母和数字。
让我们看看如何获取程序的输入以获取结果:
输入
my_text = "WELCOME TO CLUB100"
输出
CLUB100
语法
示例中使用了以下语法 -
filter()
当根据特定条件过滤项目时,将应用 filter() 方法。简单来说,它允许用户迭代提取的元素以满足条件。
isdigit()
isdigit() 是 Python 中的内置方法,如果字符找到数字,则返回 true,否则返回 false。
isalpha()
如果所有字符都是 a-z 的字母,则此内置函数返回 true。
re.findall()
findall() 方法遵循名为 re 的模块,返回字符串列表。 re 表示尝试匹配输入文本模式的正则表达式。
split()
split() 是 Python 中的内置方法,可将单词列表拆分为字符串。
append()
append() 函数用于将文本元素添加到列表末尾。
使用正则表达式
程序在相应的变量中使用正则表达式符号,并使用内置函数 findall() 查找两个字母。
示例
在下面的示例中,通过定义名为 find_alphabet_num 的函数来开始程序,该函数接受文本字符串作为参数。然后函数使用正则表达式查找包含字母和数字的文本的模式匹配。接下来,它将使用 re 模块后面的 findall() 方法查找模式文本的所有出现位置。
import re def find_alphabets_num(text): pattern = r'\b(?=\w*\d)(?=\w*[a-zA-Z])\w+\b' words = re.findall(pattern, text) return words # 创建字符串 my_text = "This is RX100" # 函数调用 result = find_alphabets_num(my_text) print(result)
输出
['RX100']
使用列表理解和拆分方法
该程序使用 split() 分离单个单词,并使用列表理解包含各种内置函数 - isdigit()、isalpha() 和 any() 以进行循环迭代。
示例
在下面的示例中,函数 find_alphabet_num 接受一个输入字符串。然后,函数 split 将输入文本拆分为单词,仅包含包含字母和数字的单词。接下来,使用函数 return 将单词作为列表返回。然后创建字符串以存储在变量 my_text 中。函数调用将使用变量 result 来传递参数,即 my_text。最后,我们借助变量 result 打印输出。
def find_alphabet_num(text): words = text.split() filtered_words = [word for word in words if any(c.isdigit() for c in word) and any(c.isalpha() for c in word)] return filtered_words # 创建字符串 my_text = "Microsoft365, MS Word, MS Excel" # 函数调用 result = find_alphabet_num(my_text) print(result)
输出
['Microsoft365,']
使用循环和字符串方法
程序使用 for 循环通过使用递归函数 split()、any()、isalpha() 和条件语句迭代到输入字符串中。
示例
在下面的示例中,通过定义名为 find_words_alphabet 的函数来启动程序,该函数接受参数名称 text(接收输入字符串值)。然后 split() 方法将单词分开并检查单词是否包含两个字符串作为输入。接下来,使用三个简单的步骤 - 创建字符串、函数调用和打印函数来获得所需的结果。
def find_words_alphabets_num(text): words = text.split() filtered_words = [] for word in words: if any(c.isdigit() for c in word) and any(c.isalpha() for c in word): filtered_words.append(word) return filtered_words # 创建字符串 my_text = "Microsoft365, MS Word, MS Excel" # 函数调用 result = find_words_alphabets_num(my_text) print(result)
输出
['Microsoft365,']
使用 Lambda 函数和 filter()
该程序使用 filter() 删除字符串中带有数字的字符。lambda 函数使用 for 循环和内置函数 [any() 和 isdigit()] 计算字母和数字的结果。
示例
在下面的示例中,函数 find_alphabet_number 接受参数 text 以通过函数调用接收字符串的值。然后,它将使用方法名称 split() 通过使用内置方法 filter() 和 lambda 分离所有单词(包括数字和字母),并将其存储在变量 words 中。接下来,它使用函数 return 返回列表。继续在变量 my_text 中创建输入字符串。然后在变量 result 中使用函数调用,并在 print 函数中使用相同的变量来获取结果。
def find_alphabet_number(text): words = text.split() filtered_words = filter(lambda word: any(c.isdigit() for c in word) and any(c.isalpha() for c in word), words) return list(filtered_words) # 创建字符串 my_text = "My World123" result = find_alphabet_number(my_text) print(result)
输出
['World123']
结论
我们讨论了解决查找字母和数字单词的各种方法。例如,正则表达式有助于设置包含字母和数字的输入文本的模式匹配,而其他内置函数也可以解决同样的问题。