2017-12-16 5 views
-1

Siehe Anhang. Ich bin neu bei Python (und Programmierung im Allgemeinen; eine Karriere wechseln; Tldr: Ich bin ein Noob bei diesem).XML Tag Counter

Ich habe keine Ahnung, welche Funktion ich schreiben kann, die mir die Anzahl der xml Tags in der Liste zurückgibt. Bitte helfen Sie. attached image

+0

Klicken Sie auf den Link mit dem Titel "Bildbeschreibung hier eingeben", um Anhang zu sehen. –

+1

[Warum nicht Bilder von Code auf SO hochladen, wenn Sie eine Frage stellen?] (Https://meta.stackoverflow.com/q/285551/771848) – alecxe

Antwort

1

Wie in der Frage angegeben:

Sie können prüfen, ob ein String ein XML-Tag ist, wenn es mit < beginnt und endet mit >

Sie müssen jeden String iterieren in eine Liste und verwenden str.startswith() und str.endswith(), um die ersten und letzten Zeichen zu überprüfen:

In [1]: l = ["<string1>", "somethingelse", "</string1>"] 

In [2]: [item for item in l if item.startswith("<") and item.endswith(">")] 
Out[2]: ['<string1>', '</string1>'] 

Hier gefiltert wir nur die gewünschten Strings in einem list comprehension, aber zu zählen, wie viele Spiele wir haben, wir sum() Hinzufügen eines 1 es jedes Mal verwenden kann eine Übereinstimmung:

In [3]: sum(1 for item in l if item.startswith("<") and item.endswith(">")) 
Out[3]: 2 

Dies war obwohl nur eine Möglichkeit, es zu tun, und ich bin mir nicht sicher, wie weit Sie in Ihrem Kurs haben. Eine naive und unkomplizierte Version der Antwort könnte sein:

def tag_count(l): 
    count = 0 
    for item in l: 
     if item.startswith("<") and item.endswith(">"): 
      count += 1 
    return count 
+0

Das war wirklich hilfreich. Vielen Dank! –