не уверен, что это спрашивали раньше, но я не мог найти очевидного ответа. Я пытаюсь подсчитать количество элементов в списке, равных определенному значению. Проблема в том, что эти элементы не встроенного типа. Итак, если у меня есть
class A:
def __init__(self, a, b):
self.a = a
self.b = b
stuff = []
for i in range(1,10):
stuff.append(A(i/2, i%2))
Теперь я хотел бы подсчитать элементы списка, поле которых b = 1. Я придумал два решения:
print [e.b for e in stuff].count(1)
а также
print len([e for e in stuff if e.b == 1])
Какой метод лучше? Есть ли лучшая альтернатива? Кажется, что метод count() не принимает ключи (по крайней мере, в Python версии 2.5.1.
Большое спасибо!