Не уверен, что это было задано раньше, но я не мог найти очевидного ответа. Я пытаюсь подсчитать количество элементов в списке, равное определенному значению. Проблема в том, что эти элементы не имеют встроенного типа. Поэтому, если у меня есть
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() не принимает ключи (по крайней мере, в версии 2.5.1 Python.
Большое спасибо!