Сравните строку с несколькими строками в Python3 - PullRequest
0 голосов
/ 06 апреля 2019

Я хочу знать, нет ли текстовой строки в переменных.А затем сравните, если есть другая текстовая строка.Переменные results Может содержать следующее: да, нет или?Я использовал следующий код:

internet = result1
vpn = result2
zetas = result3

values = [internet, vpn, zetas]

    if any(v !== "?" for v in values):
        print("No exist ?")
    if any(v == "no" for v in values):
        print("Exist a NO")
    else:
        print("Good")

, чтобы увидеть самый элегантный способ сделать это.

Ответы [ 3 ]

2 голосов
/ 06 апреля 2019

Вы можете проверить value in list или value not in list

values = (internet, vpn, zetas)

if "?" not in values:
    print("No exist ?")
if "no"  in values:
    print("Exist a NO")
else:
    print("Good")
1 голос
/ 06 апреля 2019

Во-первых, предпочтительнее передавать выражения генератора вместо списков для подачи цикла.

Во-вторых, хотя может быть много способов, хорошим способом будет просто:

values = (internet, vpn, zetas)
if "?" in (v for v in values):
  print("No exist ?")

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

0 голосов
/ 06 апреля 2019

Я проверил, будет ли ваш запрос относительно знака вопроса в кавычках избегать обнаружения, используя сравнение массивов [x in B for x in A]

#I assigned values to your variables to test
result1 ='?'
result2="no"
result3 = "yes"

internet = result1
vpn = result2
zetas = result3

#created an array with above values in it both in string format and as variable values (appended a number just for test)
A = [internet, 'no', '?', 'yes', vpn, zetas, '8']

#array of sample strings
B = ['?', 'no', 'yes']

exists = [x in B for x in A]
print (exists)

Когда результаты сравнения напечатаны, он дал: [True, True, Правда, правда, правда, правда, ложь.Однако, если были дополнительные кавычки, например '"?"', сравнение на этом печатается как False.(Элементы в одинарных кавычках оцениваются так же, как и в двойных кавычках ..)

Не стесняйтесь запускать / переназначать значения / тестировать и т. Д. По своему усмотрению.(возможно, это не тот ответ, который вы ищете, но надеюсь, что он поможет)

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