我有一个这样的列表清单:
a = [[15, 'bane', 'smth'], [13, 'qwe', 'qweqw'], ...]
我需要检查第一个元素并输出具有最大第一个元素的列表。
在这种情况下:
[15, 'bane', 'smth']
我尝试使用NumPy的amax
,但我只需要根据第一个元素获取最大值,这是行不通的
a = np.amax(a, axis=0)
我收到错误
cannot perform reduce with flexible type
因为其他元素都是我想的字符串。我还有其他方法可用于此目的吗?
我认为您可以只使用常规的旧max
函数,因为可迭代对象是根据其第一个元素进行比较的。
a = max(a)
您可以在key
功能中使用max
参数来指定用于排序的内容。但是,因为它是第一项,所以简单地max(a)
就足够了。
>>> max(a, key=lambda sublist: sublist[0])
[15, 'bane', 'smth']
您可以只执行max(map(lambda x: x[0], a))
首先选择数组的第一个元素,然后取最大值
您可以尝试使用本机Python方式:
>>> a = [ [15, 'bane', 'smth'] , [13, 'qwe', 'qweqw'], [16, 'aaa', 'bbb'] ]
>>> (sorted(a, key=lambda x: x[0]))[-1]
[16, 'aaa', 'bbb']
>>>