Проверьте любое значение в списке в предложении - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь проверить, существует ли какое-либо значение в списке в предложении, как показано ниже:

rich = ["Businessman","Robber","Politician"]
poor = ["Programmer","Engineer","Doctor"]

whoAmI = "I am an Engineer"

if rich.*MISSING_HERE* in whoAmI:
    print "You are RICH"
else :
    print "You are POOR"

Если вы посмотрите на строку с оператором if, я проверяю, доступен ли какой-либо элемент fron rich в whoAmI. Как мне это проверить?

Ответы [ 5 ]

4 голосов
/ 20 июня 2019

Использование any() метод -

if any(r in whoAmI for r in rich):
    print "You are RICH"
else :
    print "You are POOR"
2 голосов
/ 20 июня 2019

Попробуйте , иначе loop

rich = ["Businessman","Robber","Politician"]
poor = ["Programmer","Engineer","Doctor"]
whoAmI = "I am an Engineer"

for r in rich:
    if r in whoAmI:
        print "You are RICH"
        break
else:
    print "You are POOR" 
0 голосов
/ 20 июня 2019

Со списком понимания:

if len([x for x in rich if x in whoAmI]):
    print ("You are RICH")
else :
    print ("You are POOR")

Вы бедны

0 голосов
/ 20 июня 2019

Вы можете использовать этот упрощенный ответ

[any( j in rich for j in whoAmI.split())]

Если он удовлетворяет условию, он ответит True (т. Е. «Богатый»), иначе он сообщит false.

0 голосов
/ 20 июня 2019

Мы можем использовать модуль re или regex библиотеки Python для поиска слова в строке.Мы будем использовать простой цикл for (Примечание: сложность по времени: O (n))

import re

rich = ["Businessman","Robber","Politician"]
poor = ["Programmer","Engineer","Doctor"]

whoAmI = "I am an Businessman"

for word in rich:
    if re.search(i, whoAmI):
        print("Rich")
        quit()

print("Poor")

Мы используем встроенную функцию Python quit(), чтобы одни и те же выходные данные не отображались несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...