Folgendes "Problem" bei meinem Code: Nun möchte ich jedoch, dass das Einrückungslevel nicht anhand des indentaion_level also der Anzahl der Punkte, welches ein Domainname enthält festgemacht wird, sondern ob in der liste die tsl, sld oder weiter subdomains eines Domainnamens enthalten sind. Ich vereinfache meine Erklärung mit einem Beispiel mit dem Domainnamen alles.doof . Wenn jetzt in der Domainnamenliste doof enthalten ist soll der domainname alles.doof einmal eingerückt werden. Wenn jetzt doof jedoch nicht in der liste enthalten ist, wird der domainname alles.doof keinmal eingerückt , da es keinen übergeordneten gibt. optimiere folgenden code dementsprechend:

file_path = 'C:\Übungen\\Algorithmus\\domain_eingabedatei.txt'
def read_domains(file_path):
with open(file_path, 'r') as file:
domains = [line.strip() for line in file]
return domains
#sortiert Domains nach umgekehrter Hierarchie: TLD zuerst, dann SLD und dann weitere Subdomains
def reverse_domain_key(domain):
return tuple(domain.split('.')[::-1])
def sort_domains(domains):
return sorted(domains, key=reverse_domain_key)
def print_domains_with_indentation(sorted_domains):
for domain in sorted_domains:
indentation_level = domain.count('.')
indented_domain = ' ' * indentation_level + domain
print(indented_domain)
if __name__ == "__main__":
#file_path = 'C:\Übungen\\Algorithmus\\domain_eingabedatei.txt'
#Einlesen der Domains
domains = read_domains(file_path)
# Sortieren der Domains
sorted_domains = sort_domains(domains)
#Ausgabe mit Einrückung
print_domains_with_indentation(sorted_domains)