2016-05-22 5 views
-1

Wenn ich diese Funktion verwenden:Sehr neu zu Python, für einige Klärung suchen

soup = BeautifulSoup(sock,'html.parser') 
for string in soup.stripped_strings: 
    if string == "$": 
     pass 
    else: 
     print string 

Er druckt die folgenden Werte aus, die $ Überspringen:

the 
cat 
has 
nine 
lives 

Ist dies der beste Weg zu tun Wenn ich diese Informationen in einer Datenbank speichern möchte?

Am Ende was ich will ist eine Tabelle, die | die | Katze | hat | neun | lebt |

+0

Haben Sie 'string.startswith' versucht? – freakish

+0

Das funktioniert nicht ... –

Antwort

0

Sie können in Strings so indizieren, als wären sie Arrays, also könnten Sie string [0] == '$' oder string.startswith() verwenden. z.B.

strings = ['$', 'the', '$big', 'cat'] 
for s in strings: 
    if s[0] != '$': 
    print(s) 

for s in strings: 
    if not s.startswith('$'): 
    print(s) 

Sie können auch direkt eine gefilterte Liste mit Listenkomprehensionen wie diese machen:

nodollarstrings = [s for s in strings if not s.startswith('$')] 
+0

Der Code funktioniert tatsächlich, wie es sein soll, übergeben, wenn die Zeichenfolge $ ist, jedoch funktioniert der Code tatsächlich nicht und gibt nur das erste Zeichen in der Zeichenfolge zurück ... Warum ist das? Außerdem stellte ich fest, dass ich 'u $' in das OP setzte, das war, weil ich repr (string) verwendete –

+0

Ich nahm an, dass "Strings" eine Liste von Strings ist. Ist es nur eine Saite? – patstew

+0

Ausführen des obigen Codes druckt: "die" "Katze" auf meinem Python. – patstew