本文主要是介绍【数据分析面试】55. 寻找双词组 (Python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目: 寻找双词组 (Python)
编写一个名为 find_bigrams
的函数,该函数接收一个句子或段落的字符串,并按顺序返回其所有双词组的列表。
注意: 双词组是指连续的两个单词。
示例:
输入:
sentence = """
Have free hours and love children?
Drive kids to school, soccer practice
and other activities.
"""
输出:
def find_bigrams(sentence) ->[('have', 'free'),('free', 'hours'),('hours', 'and'),('and', 'love'),('love', 'children?'),('children?', 'drive'),('drive', 'kids'),('kids', 'to'),('to', 'school,'),('school,', 'soccer'),('soccer', 'practice'),('practice', 'and'),('and', 'other'),('other', 'activities.')]
答案
解题思路
解决这个问题的关键在于将输入的句子或段落分割成单词,并找到所有相邻的单词对。我们可以使用 Python 的字符串处理方法来实现这个功能。具体步骤如下:
- 移除输入字符串的换行符,并将其转换为小写以确保一致性。
- 使用
split()
方法将字符串按空格分割成单词列表。 - 使用列表推导式或循环生成所有相邻的单词对。
答案代码
def find_bigrams(sentence):# 去掉换行符并将字符串转换为小写sentence = sentence.replace('\n', ' ').lower()# 按空格分割字符串以获取单词列表words = sentence.split()# 生成所有相邻的单词对bigrams = [(words[i], words[i + 1]) for i in range(len(words) - 1)]return bigrams# 示例输入
sentence = """
Have free hours and love children?
Drive kids to school, soccer practice
and other activities.
"""# 打印输出
print(find_bigrams(sentence))
sentence.replace('\n', ' ')
: 将字符串中的换行符替换为空格。sentence.lower()
: 将字符串转换为小写。sentence.split()
: 将字符串按空格分割成单词列表。[(words[i], words[i + 1]) for i in range(len(words) - 1)]
: 使用列表推导式生成所有相邻的单词对。
更多详细答案可关注公众号查阅。
这篇关于【数据分析面试】55. 寻找双词组 (Python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!