Heim  >  Artikel  >  Backend-Entwicklung  >  Ermitteln Sie mit Python die Summe der Zahlen in einer Liste von Zeichenfolgen

Ermitteln Sie mit Python die Summe der Zahlen in einer Liste von Zeichenfolgen

WBOY
WBOYnach vorne
2023-09-07 22:41:122551Durchsuche

Ermitteln Sie mit Python die Summe der Zahlen in einer Liste von Zeichenfolgen

In Python können wir verschiedene Methoden verwenden, um Zahlen in einer Liste von Zeichenfolgen zu summieren, z. B. die Verwendung regulärer Ausdrücke, die Verwendung von isdigit() und Listenverständnissen, die Verwendung von Aufteilung und Verkettung usw. Wenn Sie mit Listen arbeiten, die Zeichenfolgen enthalten, stoßen Sie häufig auf Situationen, in denen Sie numerische Werte aus diesen Zeichenfolgen extrahieren und summieren müssen. Dies ist besonders nützlich, wenn Sie beispielsweise mit Textdateien, Protokolldateien oder Web Scraping arbeiten. In diesem Artikel werden wir verschiedene Beispiele und Algorithmen verwenden, um diese Methoden zu verstehen.

Algorithmus

Der allgemeine Algorithmus zum Ermitteln der Summe von Zahlen in einer Liste von Zeichenfolgen mit Python lautet wie folgt:

  • Definieren Sie eine Funktion, die eine Liste von Zeichenfolgen als Eingabe verwendet.

  • Verketten Sie alle Elemente in der String-Liste zu einem String.

  • Wenden Sie ein Muster oder eine Methode an, um einen numerischen Wert aus einer Zeichenfolge zu extrahieren.

  • Konvertieren Sie den extrahierten Wert in eine Ganzzahl.

  • Summieren Sie eine Liste von ganzen Zahlen.

  • Das Summationsergebnis als Rückgabewert zurückgeben.

Methode 1: Reguläre Ausdrücke verwenden

Reguläre Ausdrücke bieten eine effiziente Möglichkeit, Muster in Zeichenfolgen abzugleichen. Durch die Definition eines Musters und die Verwendung der Funktion re.findall() können wir alle Werte aus einer Liste von Zeichenfolgen extrahieren. Diese Werte werden dann in ganze Zahlen umgewandelt und summiert, um das Endergebnis zu erhalten.

Grammatik

numbers = [int(num) for num in re.findall(pattern, ''.join(string_list))]

Hier wird ein Listenverständnis [int(num) for num in re.findall(pattern, ''.join(string_list))] verwendet, um die übereinstimmende Zeichenfolge in eine Ganzzahl umzuwandeln.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Im obigen Beispiel haben wir eine string_list mit drei Elementen. Rufen Sie die Funktion sum_numbers() mit string_list als Argument auf. Das reguläre Ausdrucksmuster r"d+" stimmt mit einer oder mehreren Zahlen in jedem Element der Liste überein. Die übereinstimmenden Zahlen werden mithilfe von Listenverständnissen extrahiert und in ganze Zahlen umgewandelt. Schließlich berechnet die Funktion sum() die Summe dieser Zahlen.

import re

def sum_numbers(string_list):
    pattern = r"\d+"
    numbers = [int(num) for num in re.findall(pattern, ''.join(string_list))]
    return sum(numbers)

string_list = ['abc123', 'def456', 'ghi789']
print(sum_numbers(string_list))

Ausgabe

1368

Methode 2: Verwenden Sie isdigit() und Listenverständnis

Diese Methode verwendet die Methode isdigit(), mit der überprüft wird, ob ein Zeichen eine Ziffer ist, kombiniert mit einem Listenverständnis. Indem wir jedes Zeichen in der Zeichenfolgenliste durchlaufen und nicht numerische Zeichen herausfiltern, können wir die verbleibenden Zahlen in ganze Zahlen umwandeln. Die resultierende Liste wird dann summiert, um die gewünschte Summe zu erhalten.

Grammatik

numbers = [int(char) for item in string_list for char in item if char.isdigit()]

Hier wird ein Listenverständnis [int(char) for item in string_list for char in item if char.isdigit()] verwendet, um jedes Zeichen in jedem Element in string_list zu durchlaufen. Mit der Methode isdigit() wird überprüft, ob ein Zeichen eine Ziffer ist.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Im Beispiel unten haben wir dieselbe string_list wie zuvor. Rufen Sie die Funktion sum_numbers() mit string_list als Argument auf. Das Listenverständnis iteriert über jedes Zeichen in jedem Element von string_list. Die Methode isdigit() prüft, ob ein Zeichen eine Ziffer ist und wandelt sie gegebenenfalls in eine Ganzzahl um. Verwenden Sie dann die Funktion sum(), um die resultierende Zahlenliste zu summieren.

def sum_numbers(string_list):
    numbers = [int(char) for item in string_list for char in item if char.isdigit()]
    return sum(numbers)

string_list = ['abc123', 'def456', 'ghi789']
print(sum_numbers(string_list))

Ausgabe

45

Methode 3: Verwenden Sie Split und Join

Bei dieser Methode werden die Elemente der String-Liste mithilfe der Methode join() zu einem einzigen String verkettet. Die verkettete Zeichenfolge wird dann in eine Liste von Wörtern aufgeteilt. Indem wir jedes Wort durchlaufen und nicht numerische Wörter herausfiltern, können wir die verbleibenden Wörter in ganze Zahlen umwandeln. Addieren Sie abschließend die resultierende Zahlenliste, um das gewünschte Ergebnis zu erhalten.

Grammatik

numbers = ''.join(string_list).split()
 numbers = [int(num) for num in numbers if num.isdigit()]

Verwenden Sie hier die Methode join(), um alle Elemente von string_list zu einem String zu verketten.

Anschließend wenden Sie die Methode split() auf die verkettete Zeichenfolge an, um sie in eine Liste von Wörtern aufzuteilen. Verwenden Sie das Listenverständnis [int(num) for num in zahlen if num.isdigit()], um jedes Element in der Zahlenliste zu durchlaufen und es in eine Ganzzahl umzuwandeln, wenn es nur Zahlen enthält.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Im folgenden Beispiel verwenden wir die Funktion filter() und str.isdigit als Filterbedingungen, um nur den Ziffernteil aus jedem Element der String-Liste zu extrahieren. Anschließend verbinden wir die gefilterten Zahlen mit ''.join() und wandeln das Ergebnis mit int() in eine Ganzzahl um.

def sum_numbers(string_list):
    numbers = [int(''.join(filter(str.isdigit, item))) for item in string_list]
    return sum(numbers)

string_list = ['abc123', 'def456', 'ghi789']
print(sum_numbers(string_list))

Ausgabe

1368

Fazit

In diesem Artikel haben wir besprochen, wie man mit verschiedenen Methoden in Python die Summe von Zahlen in einer Liste von Zeichenfolgen ermittelt. Wir haben drei Methoden besprochen: die Verwendung regulärer Ausdrücke (re), die Nutzung der isdigit()-Methode beim Listenverständnis und die Verwendung von Split- und Join-Operationen. Jede Methode hat ihre eigenen Vorteile und kann je nach den spezifischen Anforderungen der Aufgabenstellung eingesetzt werden.

Das obige ist der detaillierte Inhalt vonErmitteln Sie mit Python die Summe der Zahlen in einer Liste von Zeichenfolgen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen