time=[1,2,3,3]
cf=[100,500,1000,-500]
transactions = zip(time, cf)
cf = list(set(sf))
cf.sort()
final_cf = []
for time in cf:
total_period = 0
for element in transactions:
if element[0] == time:
total_period += element[1]
final_cf.append(total_period)
使用
collections.Counter
:使用
^{pr2}$sorted
并在c.iteritems
上解压缩以获得预期的输出:如果
^{3}$tm
列表总是排序的,那么您也可以使用itertools.groupby
:time
是一个内置模块,不要将其用作变量名。这不是我最棒的作品,但它符合你的需要。在
另一种方法是使用dict:
^{pr2}$在这两种情况下,我只使用python中的“基本”数据结构。我用一个集合来消除重复的时间,然后把它列成一个有序的列表。然后一个迭代来收集每个时间段内发生的所有事务。在
相关问题 更多 >
编程相关推荐