繁体   English   中英

比较不同大小的 python 元组

[英]Comparing python tuples with different sizes

试图找到这个元组的最小值,它有不同的大小

`min(
(10.0, ((-9990, 0), (-9980, 0))), 
(10.0, (-9960, 0), (-9950, 0))
)`

我通过使用内置的 min function 来做到这一点。 但是,我收到此错误: TypeError: '<' not supported between instances of 'int' and 'tuple'. 我知道这可能与正在比较的不同大小的元组有关,但它适用于以下元组:

`min(
(3426.842861877387, ((8590, 4206), (8666, 7632))), 
(182.7840255602223, (8675, -5692), (8712, -5513))
)`

任何我可以做的想法,这两个示例中的格式似乎都是相同的。

这是由于在 python 中如何比较元组。 只要需要,就可以从左到右进行成对比较。 考虑以下示例:

(2020, 4) < (2021, "April")  # does work, True
(2021, 3) < (2021, "April")  # TypeError: '<' not supported between instances of 'int' and 'str'

在第一种情况下 2020 小于 2021,因此整个表达式被视为True而不关心下一个元素(例如比较 base-2 数字,您可以看到0b011在检查每个数字的第一个数字后小于0b100 ),在第二种情况下比较第一个元素的数量还不够,因此比较第二个元素,从而导致尝试将 integer 与导致TypeError的字符串进行比较。 如果您想了解更多信息,请阅读python 文档中的比较序列和其他类型

要深入了解格式并对其进行管理,您可以使用示例:

a=((10.0, ((-9990, 0), (-9980, 0))),(11.0, ((-9991, 0), (-9982, 0))))

print(min(a))
print(max(a))

print("Minimum of a[0][1] is ",min(a[0][1]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM