Je souhaite créer une liste d'adresses IP. Je veux parcourir le dictionnaire et vérifier l'adresse IP avec la condition if. Si l'adresse est suédoise, je souhaite l'ajouter à une liste. Une fois le dictionnaire vérifié, je veux parcourir la liste et imprimer toutes les adresses IP suédoises. Qu'est-ce que je fais mal?
def ipAddresses(listOfIps): ### list of ip addresses in dictionary ipAddresses = {"255.255.255.0 / 21": "Suomi", "192.168.64.96 / 27": "Suomi", "32.204.65.64 / 27": "Suomi", "41.57.128.0 / 22": "Sweden", "31.204.70.96 / 27": "Suomi", "41.58.10.0 / 16": "Sweden", "31.217.192.162 / 21": "Suomi", "10.42.100.136 / 29": "Suomi", "32.100.148.0 / 24": "Suomi", "41.67.128.0 / 18": "Sweden", "10.10.10.100 / 24": "Suomi", "10.10.100.1 / 24": "Suomi" } for ip, country in listOfIps.items(): ## if ip address is Swedish, add it to a list if (country == Sweden): ipAddresses.append(ip,country) return ipAddresses def Osio6(): ## loop through the list and print all swedish IP-addresses listOfIps = [] for ipAddress in listOfIps: listOfIps.append(ipAddress) ipAddressList = Swedish(listOfIps) print ("List of Swedish IP-addresses are: \n", ipAddressList, "\n")
4 Réponses :
Cela devrait vous aider:
-------------------------------------------------------------------------------- Swedish IP Addresses -------------------------------------------------------------------------------- 41.57.120.0 / 22 41.58.0.0 / 16 41.67.128.0 / 18
Production:
ipAddresses = { "1.172.152.0 / 21": "Finland", "31.204.64.96 / 27": "Finland", "31.204.65.64 / 27": "Finland", "41.57.120.0 / 22": "Sweden", "31.204.66.96 / 27": "Finland", "41.58.0.0 / 16": "Sweden", "31.217.192.0 / 21": "Finland", "32.42.29.136 / 29": "Finland", "32.106.148.0 / 24": "Finland", "41.67.128.0 / 18": "Sweden", "32.106.181.0 / 24": "Finland", "32.106.182.0 / 24": "Finland" } print('-'*80 + "\nSwedish IP Addresses\n" + '-'*80) [print(key) for key in ipAddresses.keys() if ipAddresses[key] == "Sweden"]
Voici un exemple de la façon dont vous pouvez stocker des adresses suédoises dans une liste, puis imprimer la liste (vous pouvez également le faire avec l'aide de la compréhension de la liste):
41.57.120.0 / 22 41.58.0.0 / 16 41.67.128.0 / 18
Impressions:
ipAddresses = { "1.172.152.0 / 21": "Finland", "31.204.64.96 / 27": "Finland", "31.204.65.64 / 27": "Finland", "41.57.120.0 / 22": "Sweden", "31.204.66.96 / 27": "Finland", "41.58.0.0 / 16": "Sweden", "31.217.192.0 / 21": "Finland", "32.42.29.136 / 29": "Finland", "32.106.148.0 / 24": "Finland", "41.67.128.0 / 18": "Sweden", "32.106.181.0 / 24": "Finland", "32.106.182.0 / 24": "Finland" } # store swedish addresses to list: swedish_addresses = [] for ip, country in ipAddresses.items(): if country == 'Sweden': swedish_addresses.append(ip) # print swedish addresses: for address in swedish_addresses: print(address)
Quelque chose comme ça.
{'41.57.120.0 / 22': 'Sweden', '41.58.0.0 / 16': 'Sweden', '41.67.128.0 / 18': 'Sweden'}
Production
ipAddresses = { "1.172.152.0 / 21": "Finland", "31.204.64.96 / 27": "Finland", "31.204.65.64 / 27": "Finland", "41.57.120.0 / 22": "Sweden", "31.204.66.96 / 27": "Finland", "41.58.0.0 / 16": "Sweden", "31.217.192.0 / 21": "Finland", "32.42.29.136 / 29": "Finland", "32.106.148.0 / 24": "Finland", "41.67.128.0 / 18": "Sweden", "32.106.181.0 / 24": "Finland", "32.106.182.0 / 24": "Finland" } new = dict((k,v) for k, v in ipAddresses.items() if v =='Sweden' ) print(new)
ipAddresses = { "1.172.152.0 / 21": "Finland", "31.204.64.96 / 27": "Finland", "31.204.65.64 / 27": "Finland", "41.57.120.0 / 22": "Sweden", "31.204.66.96 / 27": "Finland", "41.58.0.0 / 16": "Sweden", "31.217.192.0 / 21": "Finland", "32.42.29.136 / 29": "Finland", "32.106.148.0 / 24": "Finland", "41.67.128.0 / 18": "Sweden", "32.106.181.0 / 24": "Finland", "32.106.182.0 / 24": "Finland" } countryToSearchFor="Sweden" swedenIps=[] for ip, country in ipAddresses.items(): if country==countryToSearchFor: swedenIps.append(ip) for swedenIp in swedenIps: print(swedenIp)
Pourquoi ne l'avez-vous pas fait?
print("\n".join(ip for ip, country in ipAddresses.values() if country == "Sweden"))
mylist = [ipaddress for ipaddress, location in mydictionary.items() if location == "Sweden"]