Como posso verificar se uma string possui vários caracteres específicos usando o Python 2?
Por exemplo, dada a seguinte sequência:
Os criminosos roubaram US $ 1.000.000 em jóias.
Como detecto se ele possui cifrões ("$"), vírgulas (",") e números?
not set(p).isdisjoint(set("0123456789$,"))
ondep
está a string a ser testada.Respostas:
Assumindo que sua string é
s
:E assim por diante para outros personagens.
... ou
... ou
[Editar: adicionou as
'$' in s
respostas]fonte
s.find('$')!=-1
=>'$' in s
:-)any()
. Existe uma maneira de se referir ao caractere encontradoc
em um estilo pitônico (parece ter apenas um escopo dentro deleany()
) ou eu precisaria tornar a pesquisa de vários caracteres mais explícita?r'[\d\$,]'
para que ele corresponda a qualquer um desses caracteres eelse:
falta o ponto e vírgula no final.O usuário Jochen Ritzel disse isso em um comentário para responder a esta pergunta do usuário dappawit. Deve funcionar:
'1', '2' etc. devem ser substituídos pelos caracteres que você está procurando.
Consulte esta página na documentação do Python 2.7 para obter mais informações sobre strings, incluindo sobre o uso do método
in
operador para testes de substring.Atualização: faz o mesmo trabalho que minha sugestão acima com menos repetições:
fonte
Comparação rápida de horários em resposta à postagem de Abbafei:
Resultado:
Portanto, o código é mais compacto com qualquer, mas mais rápido com o condicional.
EDIT: TL; DR - Para seqüências longas, if-then ainda é muito mais rápido que qualquer outro!
Decidi comparar o tempo para uma longa sequência aleatória com base em alguns dos pontos válidos levantados nos comentários:
Resultado:
If-then é quase uma ordem de magnitude mais rápida que qualquer outra!
fonte
phrase
uma string com alfabetos de A a Z e eu quero imprimir quais alfabetos não estão presentes na string juntos seráany()
melhor? ou existe alguma maneira curta de verificar?Isso testará se as strings são compostas de alguma combinação ou dígitos, o sinal de dólar e vírgulas. É isso que você está procurando?
fonte
'testing $tring'
, o que não acho que seja algo que o OP queira que aconteça.'testing $tring'
se omatch
método for usado, somente sesearch
for usado. Então eu acho que o código dele está bom.'$string'
emboraelse:
print ("Caractere especial não espacial")
fonte