リスト内のオブジェクトの数をカウントする簡単で素早い方法を検索しようとしています。例: アトリビュートが一致するオブジェクトのリスト内のPython数の要素
class Person:
def __init__(self, Name, Age, Gender):
self.Name = Name
self.Age = Age
self.Gender = Gender
# List of People
PeopleList = [Person("Joan", 15, "F"),
Person("Henry", 18, "M"),
Person("Marg", 21, "F")]
ここで、属性に基づいて引数に一致するこのリスト内のオブジェクトの数を数えるのに最も簡単な関数は何ですか?
def count(seq, pred):
return sum(1 for v in seq if pred(v))
print(count(PeopleList, lambda p: p.Gender == "F"))
print(count(PeopleList, lambda p: p.Age < 20))
特に:私は関数を定義すると、複数の用途をよりシンプルであることを考えるPerson.Gender == "F" またはPerson.Age <個人的には20
私は ''(p.Gender == "F"の場合は 'pの場合はPeopleListの場合は' '' '' '' ''サブクラスint。 – wim
@wim http://stackoverflow.com/questions/3174392/is-it-pythonic-to-use-bools-as-ints –
はい、私はその投稿を認識しており、すでにアレックスの答えに私の-1票を持っています。 ;)http://stackoverflow.com/a/8169049/674039 – wim