浅谈Python列表嵌套字典转化的问题

作者:spigirl 时间:2023-12-11 10:37:43 

在看视频教程的时候提到了[{'a' : 97}, {'b' : 98}, {'c' : 99}, {'d' : 100}, {'e' : 101}, ...........]形式的列表嵌套形式,

要求是将上述列表转换为{'a' : 97,'b' : 98,'c' : 99 ,'d' : 100,'e' : 101,。。。。。}的字典形式

首先上述的a--->97, b--->98,。。。。。意思是key为a到z的英文小写字母,value值为对应的ascii码,

那么一开始可以结合range()方法定义变量如下:

浅谈Python列表嵌套字典转化的问题

那么alpha = ['a','b','c',........'z']

转换为[{'a' : 97}, {'b' : 98}, {'c' : 99}, {'d' : 100}, {'e' : 101}, ...........]的代码可以结合map()函数来生成

浅谈Python列表嵌套字典转化的问题

函数运行结果:

浅谈Python列表嵌套字典转化的问题

其实就是将[{'a' : 97}, {'b' : 98}, {'c' : 99}, {'d' : 100}, {'e' : 101}, ...........]遍历打印出来的结果。

然后就是要将上述的形式转换为


{'a' : 97,'b' : 98,'c' : 99 ,'d' : 100,'e' : 101,。。。。。}

本人采用的是Python字典中的items()函数方法:

i.items()的作用:使 { x : y } ---------》[ (x , y ) ]

结果就是:


{'a' : 97}, {'b' : 98}, {'c' : 99}, {'d' : 100}, {'e' : 101}, ...........---------》 [('a' , 97)],[('b' : 98)],........

也就是 一个i.items() 代表一个[ ( x , y) ] 字典列表

双重循环遍历输出i.items()结果:

浅谈Python列表嵌套字典转化的问题

浅谈Python列表嵌套字典转化的问题

程序的目的是获得对应的key,value值:

浅谈Python列表嵌套字典转化的问题

浅谈Python列表嵌套字典转化的问题

然后将上述的数据放到新定义的空字典中:

浅谈Python列表嵌套字典转化的问题

浅谈Python列表嵌套字典转化的问题

补充:python判断字典是嵌套和嵌套字典列表

如下所示:


#coding: utf-8
import types
#获取字典中的objkey对应的值,适用于字典嵌套
#dict:字典
#objkey:目标key
#default:找不到时返回的默认值
def dict_get(dict, objkey, default):
tmp = dict
for k,v in tmp.items():
 if k == objkey:
  return v
 else:
  if type(v) is types.DictType:
   ret = dict_get(v, objkey, default)
   if ret is not default:
    return ret
return default
#如
dicttest={"result":{"code":"110002","msg":"设备设备序列号或验证码错误"}}
ret=dict_get(dicttest, 'msg', None)
print(ret)

字典的列表


"network": {
 "tls": [],
 "udp": [
  {
   "src": "192.168.56.102",
   "dst": "114.114.114.114",
   "offset": 2372,
   "time": 9.506472110748291,
   "dport": 53,
   "sport": 51394
  },
  {
   "src": "192.168.56.102",
   "dst": "114.114.114.114",
   "offset": 2611,
   "time": 2.232347011566162,
   "dport": 53,
   "sport": 53604
  }]
  }
for k,v in mydict.items():
  if type(v) is types.ListType:
   for val in v:
    if type(val) is types.DictType:
     for key,value in val.items():
      print("%s:%s"%(key,value))
  else:
   print("%s:%s"%(k,v))

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://blog.csdn.net/qq_37264632/article/details/88981618

标签:Python,列表,字典,转化
0
投稿

猜你喜欢

  • Python使用Matplotlib实现Logos设计代码

    2021-02-04 19:18:34
  • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case

    2011-09-30 11:48:25
  • python定义具名元组实例操作

    2023-05-16 22:22:55
  • pytest中的fixture基本用法

    2023-07-14 12:26:45
  • Python列出一个文件夹及其子目录的所有文件

    2023-12-08 17:49:01
  • 深度学习TextRNN的tensorflow1.14实现示例

    2023-12-31 18:59:23
  • Sysbench多线程性能测试工具

    2024-01-20 14:08:57
  • python代码的几种常见加密方式分享

    2021-05-19 02:14:56
  • Python中函数的参数定义和可变参数用法实例分析

    2023-10-04 00:26:30
  • python实现简易云音乐播放器

    2021-07-02 10:13:43
  • asp可设置参数的分页代码例子

    2007-10-07 12:34:00
  • 简单介绍python封装的基本知识

    2022-04-16 18:51:11
  • Python数据分析matplotlib设置多个子图的间距方法

    2021-03-16 01:08:29
  • PHP5中使用DOM控制XML实现代码

    2023-09-30 09:00:07
  • javascript数组的使用

    2024-06-07 15:25:37
  • select into from和insert into select的使用举例详解

    2024-01-25 03:27:28
  • Python实现简单的代理服务器

    2023-03-28 15:13:50
  • Windows64x下VScode下载过程

    2021-03-08 20:10:47
  • 深入了解Python中Lambda函数的用法

    2023-02-03 10:09:01
  • Python爬虫爬取煎蛋网图片代码实例

    2023-08-17 07:10:38
  • asp之家 网络编程 m.aspxhome.com