P.Y. написав:Ну, насправді красивіше було б так:
[code]
frange=lambda minval, maxval, step:map(lambda x: x*step, range(int(minval/step), int(maxval/step)))
for i in frange(1234, 1342, 0.1):
print(i)
[/code]
while тут точно зайвий.
для такої задачі є NumPy.
напр
np.arange(1, 5, 0.5)
▼Прихований текст
там ще є прікольна особливість, що масиви можна множити на числа
типу: b = my_nparray * 5
а якщо хочете зекономити оперативку у форах то треба писати ітератори типу:
[code=Python]class frange():
def __init__(self, start, stop, step):
self.start = start
self.step = step
self.iterator = iter(range(int((stop - start) / step)))
def __iter__(self):
return self
def __next__(self):
return self.start + next(self.iterator) * self.step
print(frange(1, 5, 0.5))
print(list(frange(1, 5, 0.5)))[/code]
результат:
[code]<__main__.frange object at 0x7f65921114a8>
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5][/code]
▼П. С.
imho генератори в пайтоні виглядають природніше за map(), а звичайні функції краще за лямбди.
не розумію для чого рядки економити.
ППС: тут map() навіть довшим буде:
[code]map(lambda x: x*step, range(int(minval/step), int(maxval/step)))
[x * step for x in range(int(minval/step), int(maxval/step))][/code]