WedX - журнал о программировании и компьютерных науках

Как упростить оператор IF в Python 3

У меня есть оператор IF следующим образом:

...
if word.endswith('a') or word.endswith('e') or word.endswith('i') or word.endswith('o') or word.endswith('u'):
...

Здесь мне пришлось использовать 4 ИЛИ, чтобы охватить все обстоятельства. Могу ли я как-то упростить это? Я использую Python 3.4.

09.05.2016


Ответы:


1

Пытаться

if word[-1] in ['a','e','i','o','u']:

где слово[-1] - последняя буква

09.05.2016

2

Используйте любой

>>> word = 'fa'
>>> any(word.endswith(i) for i in ['a', 'e', 'i', 'o', 'u'])
True
>>> word = 'fe'
>>> any(word.endswith(i) for i in ['a', 'e', 'i', 'o', 'u'])
True
>>> 
09.05.2016
  • как и в чьем-то ответе, вы также можете использовать "aeiou" вместо списка ['a', 'e'], поскольку и список, и строка являются итерируемыми в python 09.05.2016

  • 3

    Просто:

    >>> "apple"[-1] in 'aeiou'
    True
    >>> "boy"[-1] in 'aeiou'
    False
    
    09.05.2016

    4

    word.endswith(c) точно такой же, как word[-1] == c, поэтому:

    VOWELS = 'aeiou'
    
    if word[-1] in VOWELS:
        print('{} ends with a vowel'.format(word)
    

    Сделаю. Нет необходимости создавать список, кортеж, набор или другую структуру данных: просто проверьте принадлежность к строке, в данном случае VOWELS.

    09.05.2016
    Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]