[英]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.