gpt4 book ai didi

python - 如何仅对二维列表的第一列使用 min()

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:42 25 4
gpt4 key购买 nike

我有一个二维列表,其中每个条目都有一个时间戳 (int) 和一个可以是 int、字符串或对象的第二个值。

我正在使用 min() 函数获取具有最低时间戳的条目:

a = [[2, "start C"],
[6, 2484],
[15, "finish C"]]

print(min(a))

输出:

[2, 'start C']

当存在相同的最低时间戳时,min() 将比较这些项目的第二列。

这仅在第二列具有可比较的值时有效:

a = [[2, "start C"],
[2, "start B"],
[15, "finish C"]]

print(min(a))

输出:

[2, 'start B']

如果第二列包含不同的数据类型,它会抛出一个错误:

a = [[2, "start C"],
[2, 2484],
[15, "finish C"]]

print(min(a))

输出:

TypeError: '<' not supported between instances of 'int' and 'str'

如何让仅检查第一列 的最小值?当存在相同的时间戳时,它应该只返回遇到的第一个项目。

最佳答案

你可以传递一个比较键

min(my_list, key=lambda x: x[0])

默认情况下,python 使用第一项进行比较,如果出现平局,则使用第二项作为决胜局(依此类推),这就是出现错误的原因。

关于python - 如何仅对二维列表的第一列使用 min(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com