【发布时间】:2014-03-19 15:31:53
【问题描述】:
我有来自三个不同来源的足球队数据。但是,来自这些来源的同一团队的“团队名称”在风格上有所不同。 例如
[Source1] [Source2] [Source3]
Arsenal ARS Arsenal
Manchester United MNU ManUtd
West Bromwich Albion WBA WestBrom
现在我经常需要比较这些团队名称(来自不同或相同的来源),以检查它们是相同还是不同的团队。例如
Arsenal == ARS : True
MNU == WBA : False
WBA == WestBrom : True
我想知道是否有一种简洁的 Python 方式来实现这一点。
我的想法如下:
创建一个类 Team,它有一个包含 3 个匹配团队名称的元组的元组列表。实例化一个。每个团队名称的 Team 对象。然后覆盖该类的__eq__ 方法,我将在其中对元组列表执行reduce,以查找所讨论的两个团队名称是否属于同一个表示相等的元组。
一些伪代码:
class Team:
def __init__(self, teamname):
self.teams = [(Arsenal, ARS, Arsenal),
(Manchester United, MNU, ManUtd),
(West Bromwich Albion, WBA, WestBrom),]
self.teamname = teamname
def __eq__(self, teamA, teamB):
reduce(self.teams, <check if teamA and teamB in same tuple>)
想法?
P.S.:请为这个问题提出一个更好的Title,因为我认为我在这方面做得不好。
编辑:扩展我建议的解决方案
【问题讨论】:
标签: python design-patterns equality