2017-10-21 34 views
0

我有迭代器叫做“最后”的名单之前,每个迭代持有5个值:迭代器的列表,需要通过每个迭代完全在移动到下一个

last = 
[<itertools.islice at 0x10bd29940>, 
<itertools.islice at 0x10cc914c8>, 
<itertools.islice at 0x10b94f7e0>] 

每个系列指数(下面)也包含5个日期,我想在完成下一个迭代之前遍历“last”中的每个迭代器。 (每个series.index,经过5次,那么当它5次移动通过下一迭代下一series.index,循环等

到目前为止,我已经试过;

for date in series.index: 
    net = (next(last) - 100)/100 

for date in series.index: 
    net = ([next(n) for n in last] - 100)/100 

不知道如何解决这个问题(?是有什么在itertools)

+0

尝试使用'itertools.chain.from_iterable'链接迭代器' –

+0

'为它在最后:for x in it ...'? –

+0

你究竟想在这里完成什么?什么是“下一个”系列索引 - 系列索引是什么? –

回答

0

没有数据,预期输出,它很难猜测

但继承人一试:(zip是在迭代器“平行”的操作非常有用)

last = [range(1000,6000,1000), range(2000,7000,1000), range(3000,8000,1000)] 

series =[range(1,6,1), range(2,7,1), range(3,8,1)] 

[[*zip(srs, map(lambda x: (x - 100)/100, ls))] for srs, ls in zip(series, last)] 

[[(1, 9.0), (2, 19.0), (3, 29.0), (4, 39.0), (5, 49.0)], 
[(2, 19.0), (3, 29.0), (4, 39.0), (5, 49.0), (6, 59.0)], 
[(3, 29.0), (4, 39.0), (5, 49.0), (6, 59.0), (7, 69.0)]]