在Python中

时间:2017-04-05 01:14:46

标签: python iteration

我有一个带有计数器组件的编码接口。每次更新时它只增加1。将其视为{1,2,3,...}的无限生成器,我必须使用它。

我需要使用此值并从-1.5到1.5进行迭代。因此,迭代应该从-1.5开始并达到1.5然后从1.5回到-1.5。

我应该如何使用这个无限迭代器来生成该范围内的迭代?

3 个答案:

答案 0 :(得分:1)

您可以使用itertools中的from itertools import cycle # build the list with 0.1 increment v = [(x-15)/10 for x in range(31)] v = v + list(reversed(v)) cv = cycle(v) for c in my_counter: x = next(cv) 重复序列。

v

这将重复列表 -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, -1.0, -1.1, -1.2, -1.3, -1.4, -1.5, -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 0.9 ...

JSON.parse

答案 1 :(得分:0)

类似的东西:

1.5
-1.5
1.5
-1.5
1.5
-1.5
1.5
-1.5
1.5
-1.5

输出:

cycle

请注意,这开始是1.5,因为 infGenGiven 中的第一个值是0,尽管对于您的生成器它是1,因此 infGenCycle 输出将为您提供所需的内容。

答案 2 :(得分:0)

谢谢大家。

我想最好的方法是使用三角函数(正弦余弦),它们在正负号之间振荡。

更多详细信息,请访问:https://en.wikipedia.org/wiki/Trigonometric_functions

欢呼