Решение на doge от Ралица Цанова

Обратно към всички решения

Към профила на Ралица Цанова

Резултати

  • 10 точки от тестове
  • 1 отнета точка
  • 9 точки общо
  • 15 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def wow_such_much(start, end):
transformed_nums = []
for number in range(start, end):
if number % 15 == 0:
transformed_nums.append('suchmuch')
elif number % 3 == 0:
transformed_nums.append('such')
elif number % 5 == 0:
transformed_nums.append('much')
else:
transformed_nums.append(str(number))
return transformed_nums
def count_doge_words(sentence):
words = sentence.split()
parasite_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
return len(list(filter(lambda x: x in parasite_words, words)))

Лог от изпълнението

...............
----------------------------------------------------------------------
Ran 15 tests in 0.008s

OK

История (3 версии и 2 коментара)

Ралица обнови решението на 07.03.2014 01:21 (преди около 10 години)

+def wow_such_much(start,end):
+ return list(map((lambda x:'suchmuch' if x%15 == 0 else ('such' if x%3 == 0 else ('much' if x%5 == 0 else str(x)))),range(start,end)))
+
+def count_doge_words(sentence):
+ s = sentence.split()
+ a = ['wow','lol','so','such','much','very']
+ return len(list (filter((lambda x: x in a),s)))
  • Избирай по-описателни имена, защото еднобуквените не са много добри
  • Първият ред е прекалено дълъг и трудно четим, тази функция е твърде голяма за lambda
  • Прочети PEP8 и ще видиш, че имаш няколко издънки с поставянето на интервалите около оператори и в списъците
  • Нямаш нужда от скоби около lambda функциите

Ралица обнови решението на 08.03.2014 01:13 (преди около 10 години)

-def wow_such_much(start,end):
- return list(map((lambda x:'suchmuch' if x%15 == 0 else ('such' if x%3 == 0 else ('much' if x%5 == 0 else str(x)))),range(start,end)))
+def wow_such_much(start, end):
+ transformed_nums = []
+ for word in range(start, end):
+ if word % 15 == 0:
+ transformed_nums.append('suchmuch')
+ elif word % 3 == 0:
+ transformed_nums.append('such')
+ elif word % 5 == 0:
+ transformed_nums.append('much')
+ else:
+ transformed_nums.append(str(word))
+ return transformed_nums
+
def count_doge_words(sentence):
- s = sentence.split()
- a = ['wow','lol','so','such','much','very']
+ words = sentence.split()
- return len(list (filter((lambda x: x in a),s)))
+ parasite_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
+ return len(list(filter(lambda x: x in parasite_words, words)))

Ралица обнови решението на 08.03.2014 01:17 (преди около 10 години)

def wow_such_much(start, end):
transformed_nums = []
- for word in range(start, end):
- if word % 15 == 0:
+ for number in range(start, end):
+ if number % 15 == 0:
transformed_nums.append('suchmuch')
- elif word % 3 == 0:
+ elif number % 3 == 0:
transformed_nums.append('such')
- elif word % 5 == 0:
+ elif number % 5 == 0:
transformed_nums.append('much')
else:
- transformed_nums.append(str(word))
+ transformed_nums.append(str(number))
return transformed_nums
def count_doge_words(sentence):
words = sentence.split()
parasite_words = ['wow', 'lol', 'so', 'such', 'much', 'very']
- return len(list(filter(lambda x: x in parasite_words, words)))
+ return len(list(filter(lambda x: x in parasite_words, words)))