2015-05-31 3 views
0

Я пытаюсь вывести буквы гласных (случай как напечатано) ввода и передать его на питон с помощью «функционального программирования».Python output не то, что я думаю, произойдет (функциональное программирование)

def bob(word): 
    return list(map(lambda x:x in ['a', 'e','i','o','u'], word.lower().strip())) 

bob('Hello') 
[False, True, False, False, True] 

Хотя выход, как видно выше, не был тем, чего я ожидал. Есть идеи?

+1

Убедитесь, что отступ правилен. Кроме того, вы должны использовать функцию 'filter' вместо' map' – thefourtheye

+0

Исправленный отступ. Функция фильтра дала желаемый результат. мне нужно будет удалить слово word.lower(), чтобы получить желаемый верхний и нижний регистр. – Soybean

+2

Выход отлично в порядке. Чего ты ожидал? –

ответ

0

Безумство помощи в комментариях я получил вывод, который я искал.

Что для меня работало, добавлялось .lower() в x в стиле функционального программирования, а также с использованием фильтра.

def bob(word): 
    return list(filter(lambda x:x.lower() in ['a','e','i','o','u'], word.strip())) 

Это сделало выходным изображение верхнего регистра A внутри Aloha.

bob('Aloha') 
['A', 'o', 'a'] 

Спасибо, ребята!

+0

Это не имеет никакого отношения к вызову 'lower'. В этом коде вы использовали 'filter'; в коде в вопросе вы использовали 'map'. 'map' и' filter' делают совершенно разные вещи. – user2357112

+0

Да, моя ошибка. Хотя, когда я использовал .lower() после слова, он выводит A в Aloha как нижний. Когда его x.lower() выведет прописную букву A. Это то, к чему я пытался добраться. – Soybean

Смежные вопросы