php中文网

如何将长得像字典的列表转换为真正的字典?

php中文网

将长得像字典的列表转换为字典

有些情况下,我们可能会遇到一个列表,其元素看起来像字典,但实际上不是字典。例如:

a = [{'ip': '123.181.150.193', 'port': 4241},
     {'ip': '114.238.223.98', 'port': 4237},
     {'ip': '114.233.50.103', 'port': 4257},
     {'ip': '221.8.243.135', 'port': 4275},
     {'ip': '183.147.208.157', 'port': 4234},
     {'ip': '117.24.80.213', 'port': 4228},
     {'ip': '111.127.117.242', 'port': 4285},
     {'ip': '27.150.95.69', 'port': 4213},
     {'ip': '114.238.197.108', 'port': 4247},
     {'ip': '49.74.57.244', 'port': 4268}]

为了将此列表有效地转换为字典,我们可以使用以下步骤:

  1. 提取列表中所有 ip 地址并将其存储在一个单独的列表中:
l_1 = [x['ip'] for x in a]
  1. 提取列表中所有端口并将其存储在另一个单独的列表中:
l_2 = [x['port'] for x in a]
  1. 使用 dict(zip(l_1, l_2)) 创建字典,其中 l_1 是 ip 地址列表,l_2 是端口列表:
result = dict(zip(l_1, l_2))

执行这些步骤后,result 将是一个字典,密钥是 ip 地址,值是相应的端口:

{'123.181.150.193': 4241,
 '114.238.223.98': 4237,
 '114.233.50.103': 4257,
 '221.8.243.135': 4275,
 '183.147.208.157': 4234,
 '117.24.80.213': 4228,
 '111.127.117.242': 4285,
 '27.150.95.69': 4213,
 '114.238.197.108': 4247,
 '49.74.57.244': 4268}

以上就是如何将长得像字典的列表转换为真正的字典?的详细内容,更多请关注php中文网其它相关文章!