使用迭代器列表,需要完全迭代每个迭代器,然后再转到下一个迭代器

时间:2017-10-21 20:57:21

标签: python iterator

我有一个名为" last"的迭代器列表,每个迭代器保存5个值:

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

每个系列索引(下面)也包含5个日期,我想在&#34; last&#34;中迭代每个迭代器。完全转到下一个。 (对于每个series.index,经历5次,然后当它移动到下一个series.index时,循环通过下一个迭代器5次,等等。

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

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中有什么东西吗?)

1 个答案:

答案 0 :(得分:0)

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

但是试试看:(zip对&#34;并行&#34;对迭代器的操作很有用)

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