当前位置: 首页 > 面试题库 >

如何在Python中找到列表中最短的字符串

万俟穆冉
2023-03-14
问题内容

这似乎是一个非常简单的问题,但是我正在寻找一种尚可理解的简短而甜蜜的方法(这不是代码高尔夫)。

给定一个字符串列表,找到最短字符串的最简单方法是什么?

对我来说最明显的方式大致是:

l = [...some strings...]
lens = map(l, len)
minlen, minind = min(lens)
shortest = l[minind]

但这似乎是很多解决此问题的代码(至少在python中)。


问题答案:

min函数具有一个可选参数key,可让您指定一个函数来确定每个项目的“排序值”。我们只是需要将其设置为的len功能来获得最短的价值:

strings = ["some", "example", "words", "that", "i", "am", "fond", "of"]

print min(strings, key=len) # prints "i"


 类似资料:
  • 我在使用Haskell编写的程序中遇到了一些困难。其背后的思想是递归地在一个列表中找到最短的列表并返回该列表。我已经设法把程序写得很好,但我似乎不知道我在其中做错了什么。这些是我尝试编译时得到的错误: 无法将类型“a”与“[[a]]”匹配,“a”是一个严格的类型变量,由类型签名绑定的类型为:seltest::forall a。短时间内。HS:1:13。预期类型:[[[a]]],实际类型:[a] 在

  • 问题内容: 我有一个词表 我想将每个列表项与一个字符串进行比较,并且输出应该是最相似的词。示例:如果是,则是最相似的词。如何在python中执行此操作?通常,我在清单中所用的单词可以很好地区分。 问题答案: 使用difflib: 正如您从仔细阅读源代码可以看到的那样,“接近”匹配项的排序从最佳到最差。

  • 问题内容: 背景: 示例列表: 我想检索一个子串是否匹配的元素,例如 码: 如果列表中的任何元素包含模式,则上面的命令会打印出来。 我想打印与子字符串匹配的元素。因此,如果我要检查,我只想从列表中打印。 问题答案: print [s for s in list if sub in s] 如果要用换行符分隔它们: 完整示例,不区分大小写:

  • 请告诉我如何在数据帧中查找列的值 在@Dadep的答案中,链接给出了正确的答案

  • 问题内容: 有什么简单的方法或功能可以确定python列表中的最大数量?我只可以编写代码,因为我只有三个数字,但是如果我可以使用内置函数或类似的东西告诉最大的代码,那么它将使代码的冗余度降低很多。 问题答案: 关于什么