Проверьте, существует ли элемент в списке, используя re - PullRequest
0 голосов
/ 24 мая 2018

Как мне проверить, существует ли элемент в списке, используя метод re эффективным способом?

list = ['abc', 'efg','xyz:3+1']
a = "efg"
if a in list:
    print "element exist"
else:
    print "element not exist"


Expected Output:element exist


if a = "123"
Expected output: element not exist
if a = "xyz"
Expected output: element not exist

Чего я должен добиться, это когда a равен xyz: число + число, затем напечатать "элемент"существует ".

if a = "xyz:10 + 5" 
Expected Output:element exist
if a = "xyz:3 + 1" 
Expected Output:element exist
if a = "xyz:10 + " 
Expected Output:element not exist
if a = "xyz:10" 
Expected Output:element not exist

1 Ответ

0 голосов
/ 24 мая 2018

Используйте re следующим образом:

import re
alist = ['abc', 'efg', 'xyz:3+1']
patt = re.compile(r'xyz:\s*\d+\s*\+\s*\d+\s*$')

def check_exist(e, alist, patt=patt):
    if e in alist:
        return "element exist"
    if patt.match(e):
        t = [i for i in alist if patt.match(i)]
        return "similar elements found: {}".format(t)
    return "element not exist"

a = "efg"
print(check_exist(a, alist))
a = "xyz:10 + 5"
print(check_exist(a, alist))

Выход:

element exist
similar elements found: ['xyz:3+1']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...