Anagram Prüfer: Eine Python Herausforderung

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Ein Anagramm ist ein Wort oder eine Phrase, die durch Umordnung der Buchstaben eines anderen Wortes oder einer anderen Phrase gebildet wird. Beispielsweise ist "listen" ein Anagramm von "silent". In dieser Herausforderung werden Sie aufgefordert, eine Funktion zu schreiben, die überprüft, ob zwei Zeichenketten Anagramme voneinander sind.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") subgraph Lab Skills python/booleans -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/comments -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/conditional_statements -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/for_loops -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/tuples -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/function_definition -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/importing_modules -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/using_packages -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} python/standard_libraries -.-> lab-13666{{"Anagram Prüfer: Eine Python Herausforderung"}} end

String-Anagramm

Schreiben Sie eine Funktion is_anagram(s1, s2), die zwei Zeichenketten als Argumente nimmt und True zurückgibt, wenn sie Anagramme voneinander sind, und False sonst. Die Funktion sollte Groß- und Kleinschreibung ignorieren und Leerzeichen, Satzzeichen und Sonderzeichen ignorieren.

Um dieses Problem zu lösen, können Sie die folgenden Schritte ausführen:

  1. Verwenden Sie str.isalnum(), um nicht-alphanumerische Zeichen zu filtern, und str.lower(), um jedes Zeichen in Kleinbuchstaben umzuwandeln.
  2. Verwenden Sie collections.Counter, um die resultierenden Zeichen für jede Zeichenkette zu zählen und die Ergebnisse zu vergleichen.
from collections import Counter

def is_anagram(s1, s2):
  return Counter(
    c.lower() for c in s1 if c.isalnum()
  ) == Counter(
    c.lower() for c in s2 if c.isalnum()
  )
is_anagram('#anagram', 'Nag a ram!')  ## True

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie überprüfen können, ob zwei Zeichenketten Anagramme voneinander sind. Sie haben str.isalnum() verwendet, um nicht-alphanumerische Zeichen zu filtern, str.lower() verwendet, um jedes Zeichen in Kleinbuchstaben umzuwandeln, und collections.Counter verwendet, um die resultierenden Zeichen für jede Zeichenkette zu zählen und die Ergebnisse zu vergleichen.