私の目標は、名前のリストを反復して、名前の最後の文字が次の名前の最初の文字と同じになるように並べ替えることができる場合にのみTrueを返すことです。リスト内の項目の最初と最後の一致
class Team(object):
def __init__(self, names):
self.names = names
def __iter__(self):
from collections import Counter
first = Counter(map(lambda n: n[0].lower(), self.names))
last = Counter(map(lambda n: n[-1].lower(), self.names))
diff = last - first
return any(diff.values()) <= 1
def isCoolTeam(team):
return bool(Team(team))
print(isCoolTeam(["Rob",
"Bobby",
"Billy"]))
これはFalseを返しますが、何らかの理由ですべての入力がtrueを返します。
あなたは一例を挙げることができますか? "マーク"、 "ケルト"、 "ケルト"、 "ケリー"、そして最後のものは、 "マーク"、 "ケルト"、 "ケルト"、 "ケリー"のように並べ替えることができるので、Trueを返すはずです: – crook
それぞれの名前の手紙は、次の最初のものと一致します。 –
あなたのコードで '__iter__'は呼び出されません。 –