如何在列表的第一个元素最大的列表中查找列表?

问题描述 投票:0回答:4

我有一个这样的列表清单:

a = [[15, 'bane', 'smth'], [13, 'qwe', 'qweqw'], ...]

我需要检查第一个元素并输出具有最大第一个元素的列表。

在这种情况下:

[15, 'bane', 'smth']

我尝试使用NumPy的amax,但我只需要根据第一个元素获取最大值,这是行不通的

a = np.amax(a, axis=0)

我收到错误

cannot perform reduce with flexible type

因为其他元素都是我想的字符串。我还有其他方法可用于此目的吗?

python list numpy max
4个回答
7
投票

我认为您可以只使用常规的旧max函数,因为可迭代对象是根据其第一个元素进行比较的。

a = max(a)

4
投票

您可以在key功能中使用max参数来指定用于排序的内容。但是,因为它是第一项,所以简单地max(a)就足够了。

>>> max(a, key=lambda sublist: sublist[0])
[15, 'bane', 'smth']

3
投票

您可以只执行max(map(lambda x: x[0], a))首先选择数组的第一个元素,然后取最大值


0
投票

您可以尝试使用本机Python方式:

>>> a = [ [15, 'bane', 'smth'] , [13, 'qwe', 'qweqw'], [16, 'aaa', 'bbb'] ]
>>> (sorted(a, key=lambda x: x[0]))[-1]
[16, 'aaa', 'bbb']
>>>
© www.soinside.com 2019 - 2024. All rights reserved.