Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对对象属性关联的对象列表进行切片_Python_List_Object - Fatal编程技术网

Python 如何对对象属性关联的对象列表进行切片

Python 如何对对象属性关联的对象列表进行切片,python,list,object,Python,List,Object,我有一个赛程列表。每个赛程都有一个主场俱乐部和一个客场俱乐部属性。我想将该列表按照其主场俱乐部和客场俱乐部的关联进行切片。切片列表应该是主场俱乐部项目和客场俱乐部项目 实现这一点更简单的方法是先将赛程列表切分。然后将相应的主场俱乐部和客场俱乐部列成一个新的列表。我想知道我们是否能做到这一点。这不是你想要的答案,但是(假设[(主场1,主场1),(主场2,主场2),…]))这就跟你得到的一样简单 homes = [h for h,a in fixtures] aways = [a for h,a i

我有一个赛程列表。每个赛程都有一个主场俱乐部和一个客场俱乐部属性。我想将该列表按照其主场俱乐部和客场俱乐部的关联进行切片。切片列表应该是主场俱乐部项目和客场俱乐部项目


实现这一点更简单的方法是先将赛程列表切分。然后将相应的主场俱乐部和客场俱乐部列成一个新的列表。我想知道我们是否能做到这一点。

这不是你想要的答案,但是(假设
[(主场1,主场1),(主场2,主场2),…])
)这就跟你得到的一样简单

homes = [h for h,a in fixtures]
aways = [a for h,a in fixtures]

不太清楚您要做什么,但是这段代码将获取前五个fixture,并返回一个元组列表,每个元组包含各自对象的home和away值:

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]]

当然,需要做一点工作:

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
或:


谢谢你的回复。正是我想要的needed@gizgok:如果这正是你需要的,不要忘记接受答案(当网站给你机会时)。传播业力@马克斯:我试着这么做:球杆=[c.主场,c.客场比赛[:5]]这是一个错误。请原谅我缺乏python知识,但是如果是的话,这可以在一次stmt中再次实现吗How@gizgok:您忘记了c的
部分:
俱乐部=[c.home,c.away,c.in fixtures[:5]]
。是的,这项工作也做得很好
home, away = zip(*itertools.imap(operator.attrgetter('home', 'away'),
    itertools.islice(fixture, 5, None)))