Как я могу проверить, содержит ли строка несколько определенных символов, используя Python 2?
Например, с учетом следующей строки:
Преступники украли драгоценности на 1 000 000 долларов.
Как определить, есть ли у него знаки доллара ("$"), запятые (",") и цифры?
not set(p).isdisjoint(set("0123456789$,"))
гдеp
находится строка для тестирования.Ответы:
Предполагая, что ваша строка
s
:И так далее для других персонажей.
... или
... или
[Редактировать: добавил
'$' in s
ответы]источник
s.find('$')!=-1
=>'$' in s
:-)any()
. Есть ли способ сослаться на найденный символc
в питоническом стиле (кажется, что он ограниченany()
только внутри ), или мне нужно сделать поиск нескольких символов более явным?r'[\d\$,]'
чтобы оно соответствовало любому из этих символов, иelse:
в конце отсутствует двоеточие.Пользователь Jochen Ritzel сказал об этом в комментарии к ответу на этот вопрос от пользователя dappawit. Он должен работать:
«1», «2» и т. Д. Следует заменить теми символами, которые вы ищете.
См. Эту страницу в документации по Python 2.7 для получения дополнительной информации о строках, в том числе об использовании
in
оператора для тестов подстрок.Обновление: это делает ту же работу, что и мое предложение с меньшим количеством повторений:
источник
Быстрое сравнение времени в ответе на пост Аббафей:
Вывод:
Так что код более компактен с любым, но быстрее с условным.
РЕДАКТИРОВАТЬ: TL; DR - Для длинных строк, если-то все еще намного быстрее, чем любой!
Я решил сравнить время для длинной случайной строки, основываясь на некоторых правильных моментах, поднятых в комментариях:
Вывод:
Если-то почти на порядок быстрее любого!
источник
phrase
что строка с алфавитами от A до Z, и я хочу напечатать, какие алфавиты отсутствуют в строке вместе будетany()
лучше? или есть какой-нибудь короткий способ проверить?Это проверит, состоят ли строки из некоторой комбинации или цифр, знака доллара и запятых. Это то, что вы ищете?
источник
'testing $tring'
, что я не думаю, что ОП хочет, чтобы это произошло.'testing $tring'
еслиmatch
метод используется, только еслиsearch
используется. Поэтому я думаю, что его код в порядке.'$string'
хотяеще:
печать («Не пробел специальный символ»)
источник