获得最长单词长度的更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/

10-09 20:21
查看更多