General FizzBuzz: Difference between revisions

Content added Content deleted
m (→‎Elegant naive version: improve legibility)
Line 2,861: Line 2,861:


<lang python>def genfizzbuzz(factorwords, numbers):
<lang python>def genfizzbuzz(factorwords, numbers):
factorwords.sort(key=lambda p: p[0])
# sort entries by factor
factorwords.sort(key=lambda factor_and_word: factor_and_word[0])
lines = []
lines = []
for num in numbers:
for num in numbers:
words = ''.join(wrd for fact, wrd in factorwords if (num % fact) == 0)
words = ''.join(word for factor, word in factorwords if (num % factor) == 0)
lines.append(words if words else str(num))
lines.append(words if words else str(num))
return '\n'.join(lines)
return '\n'.join(lines)