我有一个灯具列表。每个灯具都有一个家庭俱乐部和一个客场俱乐部属性。我想把它的家庭俱乐部和远足俱乐部联系在一起。切片列表应该是家庭俱乐部项目和离家俱乐部项目。
更容易实现这一点的方法是首先切割一个灯具列表。然后制作相应的家庭俱乐部和客场俱乐部的新列表。我想知道我们是否可以这一步。
答案 0 :(得分:3)
目前还不是很清楚你要做什么,但是这段代码将采用前五个灯具,并返回一个元组列表,每个元组包含一个home和相应对象的off值:
result = [(i.home, i.away) for i in fixtures[:5]]
这会将两者分成两个列表:
homes = [i.home for i in fixtures[:5]]
aways = [i.away for i in fixtures[:5]]
或者在一条线上:
homes, aways = [i.home for i in fixtures[:5]], [i.away for i in fixtures[:5]]
答案 1 :(得分:0)
不完全是你所追求的答案,但是(假设为[(home1, away1), (home2, away2), ...]
)这就像你会得到的一样简单。
homes = [h for h,a in fixtures]
aways = [a for h,a in fixtures]
答案 2 :(得分:0)
当然,做了一些工作:
def split(fixture):
home, away = [], []
for i, f in enumerate(fixture):
if i >= 5:
home.append(f.home)
away.append(f.away)
return home, away
或者:
home, away = zip(*itertools.imap(operator.attrgetter('home', 'away'),
itertools.islice(fixture, 5, None)))