Python如何统计列表各元素中指定单个单词的出现情况
实现代码
基础版本(子串匹配,符合示例需求)
只要原列表元素包含输入的内容就算匹配,直接用in关键字判断即可:
names = ['Deepak is a boy','Reema is short','John is tall','Deepak is shy','Munna is naughty','Reema','Deepak is shy','Amit is hilarious','John is tall','Reema is short'] nm = input('请输入要查询的单词:') # 遍历列表每个元素生成结果数组 result = [1 if nm in item else 0 for item in names] print(result) # 如需统计总出现次数可添加以下代码 print('总出现次数:', sum(result))
输入shy时输出为[0, 0, 0, 1, 0, 0, 1, 0, 0, 0],和预期结果完全一致。
严格单词匹配版本(可选)
如果需要避免子串误匹配(比如输入sh时不会误匹配到shy,输入a时不会误匹配到boy里的字母a),可以用正则的单词边界匹配:
import re names = ['Deepak is a boy','Reema is short','John is tall','Deepak is shy','Munna is naughty','Reema','Deepak is shy','Amit is hilarious','John is tall','Reema is short'] nm = input('请输入要查询的单词:') # 构造单词匹配正则,re.escape用于处理输入带特殊正则字符的情况 pattern = re.compile(r'\b' + re.escape(nm) + r'\b') result = [1 if pattern.search(item) else 0 for item in names] print(result)
内容的提问来源于stack exchange,提问作者Raspberry Lemon
相关产品推荐
相关产品推荐

