Ich muss nur Zeichenfolgen herausfiltern, die nur Ziffern und/oder eine feste Satzzeichen enthalten.Filtern von Strings, die nur Ziffern und/oder Interpunktion enthalten - python
Ich habe versucht, jedes Zeichen zu überprüfen und dann die booleschen Bedingungen zu summieren, um zu überprüfen, ob es gleich len(str)
ist. Gibt es einen pythonic Weg, dies zu tun:
>>> import string
>>> x = ['12,523', '3.46', "this is not", "foo bar 42", "23fa"]
>>> [i for i in x if [True if j.isdigit() else False for j in i] ]
['12,523', '3.46', 'this is not', 'foo bar 42']
>>> [i for i in x if sum([True if j.isdigit() or j in string.punctuation else False for j in i]) == len(i)]
['12,523', '3.46']
Sind Sie sicher, dass Sie nicht ** wirklich ** meinen "Ich muss Strings finden, die Zahlen darstellen könnten, aber' float' usw. funktioniert nicht, weil ich auch Kommas als Tausendertrennzeichen zulassen möchte "? –
Ja, ich brauche das später, aber eine zweischichtige Filterung wird auch numerische Indexierung in legalen Dokumenten erfassen (zB 'x = [" chapter "," 1.2.3.5 "]') – alvas