Python 3.x 如何从具有最小整数值的列表中提取项目?

Python 3.x 如何从具有最小整数值的列表中提取项目?,python-3.x,Python 3.x,如果我有一个列表,其中每种元素都包括一种食物及其卡路里计数 lst = ['Lettuce, 13', 'Onions, 40', 'Radishes, 271'] 如何检索和打印包含最低卡路里计数的列表元素?您可以迭代列表,并使用,作为分隔符拆分元素 lst = ['Lettuce, 13', 'Onions, 40', 'Radishes, 271'] min_ = float('inf') min_food = None for l in lst: c = int(l.split

如果我有一个列表,其中每种元素都包括一种食物及其卡路里计数

lst = ['Lettuce, 13', 'Onions, 40', 'Radishes, 271']

如何检索和打印包含最低卡路里计数的列表元素?

您可以迭代列表,并使用
作为分隔符拆分元素

lst = ['Lettuce, 13', 'Onions, 40', 'Radishes, 271']
min_ = float('inf')
min_food = None
for l in lst:
    c = int(l.split(', ')[-1])
    if c < min_:
        min_, min_food = c, l
print(min_food)

按“
”、“
分隔符拆分元素,按第二个元素(卡路里)的数值对它们进行排序,并返回第一个条目作为最小值


排序(lst,key=lambda s:int(s.split(“,”[1]))[0]
尝试使用lambda排序,然后保留第一个元素:

newlst = sorted(lst, key=lambda x: int(re.sub(r'^.*?(?=\d)', '', x)))
print(newlst[0])
这张照片是:

Lettuce, 13

上述调用
re.sub
中使用的正则表达式替换逻辑删除了所有内容,但不包括出现在每个列表项末尾的第一位数字。然后,我们将该字符串数转换为整数,并使用该值按升序排列。

最简单、可能也是最快的方法是:

min(lst, key=lambda x: int(x.split(', ')[1]))

re.sub
这将是一个巨大的杀伤力,而且您可以直接应用
min
而不是排序和获取第一个元素。@TimBiegeleisen:不。我的回答是:“
”,“
。这个答案是@curlycharcoal在你发帖前两分钟给出的。@TimBiegeleisen:没有。它使用
sorted()
。如果这里的任何答案对您有所帮助,请按答案左侧的勾号接受。
min(lst, key=lambda x: int(x.split(', ')[1]))