首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中改变元组的可比较方法?

如何在Python中改变元组的可比较方法?
EN

Stack Overflow用户
提问于 2021-05-03 15:50:46
回答 2查看 56关注 0票数 0

假设两个元组都有2个元素。

代码语言:javascript
复制
t1=(2,8)

t2=(5,6)

假设我想在两个元组的第一个元素的基础上比较它们。因此,当我们执行t1>t2时,输出应该是True (作为t11>t21)。

所以我想在第一个元素的基础上对这两个元组进行比较。

我知道我必须覆盖tuple的比较函数。但我不知道该怎么做。

所以请告诉我我该如何做到这一点?(假设我想按升序比较元素...)

我想这样做的原因是:Merging k sorted lists using heapq module in python3

我正在使用Python-3.8.5

EN

回答 2

Stack Overflow用户

发布于 2021-05-03 16:05:56

您可以简单地获取元组的第一个元素并进行比较。

代码语言:javascript
复制
t1 = (1,2)
t2 = (5,4)
print(t1[0] > t2[0])

或者,如果您想要筛选或排序。

代码语言:javascript
复制
sorted_tuples = sorted(list_of_tuples, key= lambda x: x[0])
票数 1
EN

Stack Overflow用户

发布于 2021-05-03 16:11:54

这里是“优雅”的方式;):

代码语言:javascript
复制
In [1]: from functools import total_ordering


In [3]: @total_ordering
   ...: class FirstItemComparisonTuple(tuple):
   ...:     def __eq__(self, other):
   ...:         return self[0] == other[0]
   ...:     def __lt__(self, other):
   ...:         return self[0] < other[0]
   ...: 


In [5]: a = FirstItemComparisonTuple((1, 2))

In [6]: a[0]
Out[6]: 1

In [7]: b = FirstItemComparisonTuple((2, 4))

In [8]: a < b
Out[8]: True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67365280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档