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

lee*_*ker 36 python

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

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

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

l = [...some strings...]
lens = map(l, len)
minlen, minind = min(lens)
shortest = l[minind]
Run Code Online (Sandbox Code Playgroud)

但这似乎是这个问题的很多代码(至少在python中).

小智 96

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

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

print min(strings, key=len) # prints "i"
Run Code Online (Sandbox Code Playgroud)