如何正确统计Python元组中用户输入单词的出现次数?
解决方法
你的代码当前只统计了包含目标单词的元组元素数量,而不是单词实际出现的次数。要统计每个元素里目标单词的出现次数,需要把每个元素拆成单独的单词再逐一计数。
修改后的代码如下:
# 不要用tuple当变量名,它是Python内置类型,会覆盖原有功能 my_tuple = ("one","two","three","four","five","six","one cat one dog") word = input("Input word: ") count = 0 for item in my_tuple: # 把当前元素按空格拆分成单词列表 words_in_item = item.split() # 统计当前元素里目标单词的出现次数,加到总计数里 count += words_in_item.count(word) if count != 0: print(f"This word repeats this many times: {count}") else: print("There are no words that match user input")
关键修改点:
- 替换变量名:把
tuple改成my_tuple,避免覆盖Python内置的tuple类型,这是基础编程规范。 - 拆分字符串:用
split()将每个元组元素拆成独立单词的列表,比如"one cat one dog"会被拆成["one", "cat", "one", "dog"]。 - 统计单词次数:调用列表的
count()方法,直接获取当前元素中目标单词的出现次数,累加到总计数里。
如果需要保留原代码里"只统计长度大于1的单词"的逻辑,可以在循环里添加判断:
for item in my_tuple: if len(word) > 1: words_in_item = item.split() count += words_in_item.count(word)
内容的提问来源于stack exchange,提问作者Ugbuk
相关产品推荐
相关产品推荐

