这似乎是一个非常简单的问题,但我正在寻找一种简短而又甜蜜的方法,而且仍然可以理解(这不是编程高尔夫)。
给定一个字符串列表,查找最短字符串的最简单方法是什么?
对我来说,最明显的方式大致是:
l = [...some strings...]
lens = map(l, len)
minlen, minind = min(lens)
shortest = l[minind]
但是这个问题似乎有很多代码(至少在python中是这样)。
发布于 2011-08-29 18:33:33
The min
function有一个可选的参数key
,它允许您指定一个函数来确定每个项目的“排序值”。我们只需要将其设置为the len
function,以获得最短的值:
strings = ["some", "example", "words", "that", "i", "am", "fond", "of"]
print min(strings, key=len) # prints "i"
发布于 2011-08-29 18:35:32
耗费线性时间:
reduce(lambda x, y: x if len(x) < len(y) else y, l)
发布于 2011-08-29 18:34:30
我会使用sorted(l, key=len)[0]
https://stackoverflow.com/questions/7228924
复制相似问题