Форум сайта python.su
Вот только изучаю питон(3ий), и не могу разобраться, как мне высчитать Среднеквадратичное отклонение.
Вот сам класс:
data = []
def __init__(self, data):
self.data = data
def dispersia(self):
return self.expected_value(map(lambda x: x*x, self.data)) - self.expected_value(self.data)**2
def expected_value(self,data):
return sum(data)/len(data)
return sum(data)/len(data)
TypeError: object of type 'map' has no len()
Офлайн
>>> lst = map(lambda x: x, 'abc')
>>> lst
<map object at 0xb73fc8ac>
>>> len(lst)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'map' has no len()
>>> dir(lst)
['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
>>> lst = list(lst)
>>> len(lst)
3
>>>
Офлайн
py.user.next хотел сказать: в третьем map возвращает не list а итератор
Офлайн
Спасибо, теперь ясно)
Офлайн
там ещё есть инфа
если ты хочешь узнать, сработает ли функция len() для чего-либо, то используй dir() для просмотра всех методов объекта
если там есть __len__, то сработает len()
если там есть __hash__, то сработает hash()
а ещё можно посмотреть, что там есть ещё
например, сделай dir(1) и увидишь, какие методы скрыты в обычном целом
Отредактировано (Июль 25, 2011 05:47:03)
Офлайн
py.user.nextСпасибо, там будет намного проще) Тем более частенько почему-то недоступен docs.python.org
какие методы скрыты в обычном целом
Офлайн
Тем более частенько почему-то недоступен docs.python.orgтам можно скачать документацию
Офлайн