10.1. Loop Else For — Python
elsewill execute, ifbreakwas not used to exit the loop
DATA = """ 127.0.0.1 localhost 127.0.0.1 mycomputer 172.16.0.1 example.com 192.168.0.1 example.edu example.org 10.0.0.1 example.net 255.255.255.255 broadcasthost ::1 localhost """ DNS = [] for line in DATA.splitlines(): if not line: continue ip, *hostnames = line.split() # ip == '192.168.0.1' # hostnames == ['example.edu', 'example.org'] for record in DNS: if record['ip'] == ip: record['hostnames'].update(hostnames) break else: DNS.append({ 'hostnames': set(hostnames), 'ip': ip, }) print(DNS) # [ # {'ip': '127.0.0.1', 'hostnames': {'astromatt', 'localhost'}}, # {'ip': '10.13.37.1', 'hostnames': {'esa.int', 'nasa.gov'}}, # {'ip': '255.255.255.255', 'hostnames': {'broadcasthost'}}, # {'ip': '::1', 'hostnames': {'localhost'}}, # ]