获得最长单词长度的更pythonic方法是什么:len(max(words, key=len))
或者:max(len(w) for w in words)
或者是其他东西? words
是一个字符串列表。
我发现我需要经常这样做,并且在使用几个不同的样本大小计时后,第一种方法似乎始终更快,尽管表面值(value)似乎效率较低(len
的冗余被调用两次似乎无关紧要 - 还会发生更多在这种形式的 C 代码中?)。
最佳答案
我认为两者都可以,但我认为除非速度是一个重要的考虑因素,否则 max(len(w) for w in words)
是最具可读性的。
当我查看它们时,我花了更长的时间才知道len(max(words, key=len))
在做什么,但在我仔细考虑之前,我还是错了。除非有充分的理由,否则代码应该立即显而易见。
从其他帖子(和我自己的测试)可以清楚地看出,可读性较差的帖子速度更快。但它不像他们中的任何一个都是狗慢的。除非代码在关键路径上,否则不值得担心。
归根结底,我认为更具可读性的是更 Pythonic。
顺便说一句,这是 Python 2 在执行相同任务时明显快于 Python 3 的少数情况之一。
关于python - 列表中最长单词的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14637696/