gpt4 book ai didi

python - 这是查找字符串中最长单词(复数)的有效方法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:53 25 4
gpt4 key购买 nike

我是 Python 的新手,发现了一些关于在字符串中查找最长 WORD 的建议,但没有一个能解释具有多个匹配最长长度的单词的字符串。

经过反复尝试,我决定这样做:

inputsentence = raw_input("Write a sentence: ").split()
longestwords = []
for word in inputsentence:
if len(word) == len(max(inputsentence, key=len)):
longestwords.append(word)

这样我就有了一个最长的单词列表,我可以用它来做某事。有更好的方法吗?

注意:假设 inputsentence 不包含整数或标点符号,只是一系列单词。

最佳答案

如果您只使用少量文本来执行此操作,则无需担心运行时效率:编程效率,在编码、审查和调试方面,重要得多。所以你的解决方案很好,因为它对于数千个单词来说是清晰且足够有效的。 (但是,您应该在 for 循环之前计算一次 len(max(inputsentence, key=len))。)

但是假设您确实想对可能有几千兆字节长的大型语料库执行此操作?以下是如何一次完成,而无需将每个单词都存储在内存中(请注意,inputcorpus 可能是分阶段读取语料库的迭代器或函数):全部保存仅限最长 单词。如果您看到一个比当前最大长度更长的单词,那么它显然是第一个达到这个长度的单词,因此您可以开始一个新的列表。

maxlength = 0
maxwords = [ ] # unnecessary: will be re-initialized below
for word in inputcorpus:
if len(word) > maxlength:
maxlength = len(word)
maxwords = [ word ]
elif len(word) == maxlength:
maxwords.append(word)

如果某个最大长度的单词重复出现,您最终会得到多个副本。为避免这种情况,只需使用 set( ) 而不是列表(并调整初始化和扩展)。

关于python - 这是查找字符串中最长单词(复数)的有效方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16873463/

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