gpt4 book ai didi

python - 查找字符串中最短的单词

转载 作者:太空狗 更新时间:2023-10-30 01:04:28 26 4
gpt4 key购买 nike

我是编码新手,我正在研究一个要求在句子中找到最短单词的问题。我很困惑之间的区别是什么:

def find_short(s):
for x in s.split():
return min(len(x))

def find_short(s):
return min(len(x) for x in s.split())

是,因为前者给我一个错误,而后者似乎工作正常。它们实际上不是一回事吗?

最佳答案

Are they not virtually the same thing?

不,它们不是一回事。如果 s 等于 "hello world",在第一次迭代中,x 将是 "hello"。这里有两处错误:

  • 您试图在第一次迭代中返回,而不是遍历所有元素(单词)以找出最短的元素。
  • min(len(x)) 就像说 min(5) 这不仅是传递给 min(..)< 的错误参数 但也没有意义。您希望传递一个元素列表,min 将从中计算最小值。

第二种做法其实是正确的。 See this answer of mine了解如何解释它。简而言之,您正在计算每个单词的长度,将其放入一个列表(实际上是一个生成器),然后要求 min 对其进行最小计算。

有一种更简单的方法可以了解为什么您的第二个表达式有效。尝试打印以下结果:

print([len(x) for x in s.split()])

关于python - 查找字符串中最短的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51314005/

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