Python:如何创建搜索特定IP地址的字典列表函数

Python:如何创建搜索特定IP地址的字典列表函数,python,list,dictionary,Python,List,Dictionary,我想创建ip地址列表。我想在字典中循环并检查ip地址是否符合if条件。如果地址是瑞典语,我想将其添加到列表中。检查完字典后,我想循环浏览列表并打印所有瑞典IP地址。我做错了什么 def ipAddresses(listOfIps): ### list of ip addresses in dictionary ipAddresses = {"255.255.255.0 / 21": "Suomi", "192.168.64.9

我想创建ip地址列表。我想在字典中循环并检查ip地址是否符合if条件。如果地址是瑞典语,我想将其添加到列表中。检查完字典后,我想循环浏览列表并打印所有瑞典IP地址。我做错了什么

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")
这将有助于您:

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"]
输出:

--------------------------------------------------------------------------------
Swedish IP Addresses
--------------------------------------------------------------------------------
41.57.120.0 / 22
41.58.0.0 / 16
41.67.128.0 / 18

下面是一个示例,您可以将瑞典语地址存储到列表中,然后打印列表(您也可以借助列表理解来执行此操作):

印刷品:

41.57.120.0 / 22
41.58.0.0 / 16
41.67.128.0 / 18
像这样的

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)
输出

{'41.57.120.0 / 22': 'Sweden', '41.58.0.0 / 16': 'Sweden', '41.67.128.0 / 18': 'Sweden'}

为什么不这样做?
print(“\n”).join(ip代表ip,ip地址中的国家。如果国家=”瑞典“),则值为())
mylist=[ipaddress代表ipaddress,mydictionary中的位置。items()如果位置=”瑞典“]
{'41.57.120.0 / 22': 'Sweden', '41.58.0.0 / 16': 'Sweden', '41.67.128.0 / 18': 'Sweden'}
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)