Как проверить, содержит ли строка нежелательные символы - PullRequest
0 голосов
/ 06 октября 2018

Я изучаю Python всего несколько недель, поэтому, пожалуйста, потерпите меня.Допустим, у меня есть 3 переменные:

AX557349 = "gcggatttactcaggggagagcccagataaatggagtctgtgcgtccacagaattcgcacca"
AX557350 = "tccgtgaaacaaagcggatgtaccggatttttattccggctatggggcaattccccgtcgcggagcca"
Tester = "atcgatccblah"

nucs = []
nucs.extend(AX557349, AX557350, Tester)

Я хочу вернуть только те элементы списка, которые содержат символы, отличные от «a», «t», «c» или «g».В этом случае тестер.Как бы я поступил так?

Ответы [ 3 ]

0 голосов
/ 06 октября 2018

Как насчет использования набора?

if len(set(Tester) - set("acgt")) > 0:
    print("contains other characters")
0 голосов
/ 06 октября 2018

Есть несколько способов.Вы можете использовать all с выражением генератора:

def checker(x):
    acgt = set('acgt')
    return not all(i in acgt for i in x)

В качестве альтернативы используйте set.issubset или его синтаксический сахар <=:

def checker(x):
    return not set(x) <= set('acgt')

Результат:

checker(AX557349)  # False
checker(AX557350)  # False
checker(Tester)    # True
0 голосов
/ 06 октября 2018

Вы можете использовать функцию Python any:

if any(c not in set('atcg') for c in Tester):
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...