操作元组列表
Manipulating a list of tuples
我有一个二元组列表:(object, timestamp)
。
我想制作一个 returns 列表的生成器,其中每个列表包含共享相同时间戳的元组。
另外一个需求就是生成器的第一个listreturns是时间戳最早的list
为方便起见,我们假设时间戳是自然数:1, 2, 3, ...
。
是否有 Python 的内置工具来处理这种事情,或者解决方案是天真的实现?
您可以在 operator
和 itertools
的帮助下完成此操作:
from operator import itemgetter
from itertools import groupby
def grouped(mytuples):
for timestamp, items in groupby(sorted(mytuples, key=itemgetter(1)),
key=itemgetter(1)):
yield timestamp, list(items)
我有一个二元组列表:(object, timestamp)
。
我想制作一个 returns 列表的生成器,其中每个列表包含共享相同时间戳的元组。
另外一个需求就是生成器的第一个listreturns是时间戳最早的list
为方便起见,我们假设时间戳是自然数:1, 2, 3, ...
。
是否有 Python 的内置工具来处理这种事情,或者解决方案是天真的实现?
您可以在 operator
和 itertools
的帮助下完成此操作:
from operator import itemgetter
from itertools import groupby
def grouped(mytuples):
for timestamp, items in groupby(sorted(mytuples, key=itemgetter(1)),
key=itemgetter(1)):
yield timestamp, list(items)