gpt4 book ai didi

Python 3 : Finding word which appears the most times without using import or counter or dictionary, 只有简单的工具,如 .split() 和 .lower()

转载 作者:行者123 更新时间:2023-12-01 04:47:55 25 4
gpt4 key购买 nike

我目前正在学习 Python 并尝试解决一个免费教程问题。

问题来了

一位作家正在创作他们的最新诗《图灵与机器》。他们雇用你来确定出现次数最多的单词。您可以通过重复调用 input() 来访问这首诗的各行,最后一行包含三个字符###。所有行均由用单个空格分隔的单词组成;没有数字或标点符号。将所有单词转换为小写,并打印出现次数最多的单词(我们保证不会出现平局)。例如,如果输入是

这是一条像起泡酒一样的线

快速排队,否则成为最后一个

###

那么输出应该是

因为它出现了两次,并且没有其他单词出现两次。

......下面是我能得到的最接近解决方案的内容。

除其他外,它仍然缺乏允许用户重复调用 input() 的功能。

而且它只打印出最常用单词的最大数量,而不是问题想要的单词本身。

这首诗由网站 shell 提供,位于 http://cscircles.cemc.uwaterloo.ca/15b-python-pushups/

假设用户一次输入一行诗。

请帮忙。太感谢了。

......

def poem(P):

P_lower = P.lower()

P_split = P_lower.split()

word_list = []

wordfreq = []

for i in P_split:
word_list.append(i)

for i in P_split:
wordfreq.append(P_split.count(i))

print(max(wordfreq))


poem('Here is a line like line sparkling line wine')

最佳答案

这不使用任何“受限”工具,而仅使用 lower()、split() 和 sort() 来返回出现次数最多的单词。

def  main():
done = False
P = ""
while not done:
new_line = input()
if new_line != "###":
P += new_line + " "
else:
done = True
poem_words = P.lower().split()
poem_words.sort()

# Initialize variables
temp = ""
max_count = 0
icount = 1
max_word = ""

# Do the loop
for i in range(len(poem_words)):
if temp == poem_words[i]:
icount += 1
else:
temp = poem_words[i]
icount = 1
if icount > max_count:
max_count = icount
max_word = temp
print(max_word)
return

if __name__ == "__main__":
main()

关于Python 3 : Finding word which appears the most times without using import or counter or dictionary, 只有简单的工具,如 .split() 和 .lower(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com