python 字典和列表嵌套用法详解
作者:钢铁侠的知识库 发布时间:2022-04-12 10:58:12
python中字典和列表的使用,在数据处理中应该是最常用的,这两个熟练后基本可以应付大部分场景了。不过网上的基础教程只告诉你列表、字典是什么,如何使用,很少做组合说明。
刚好工作中采集prometheus监控接口并做数据处理的时候,用了很多组合场景,列出几个做一些分享。
列表(List)
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
特点就是:可重复,类型可不同
常用方式
创建一个列表,只要把逗号分隔的不同数据项使用方括号括起来即可。如下所示:
list1 = ['apple', 'banana', 2008, 2021]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
### 向list中增加元素
list1.append(3) ## ['apple', 'banana', 2008, 2021, 3]
### 使用extend用来连接list
list1.extend([7, 8]) ##['apple', 'banana', 2008, 2021, 3, 7, 8]
### insert 将单个元素插入到list中
list3.insert(2, 'q') ##['a', 'b', 'q', 'c', 'd']
### 获取列表的长度
print(len(list1)) ## 5
### 遍历list
for name in list1:
print(name)
extend(扩展)与append(追加)的看起来类似,但实际上完全不同。
extend接受一个参数,这个参数总是一个list,并且把这个list中每个元素添加到原list中。
append接受一个参数,这个参数可以是任何数据类型,并且简单地追加到list的尾部。
字典(dictionary)
字典是另一种可变容器模型,且可存储任意类型对象。
键(key)必须是唯一的,可以用数字,字符串或元组充当,而用列表就不行
同一个键出现两次,最后出现的会更新前一个的值。
常用方式
字典的每个键值 key=>value
对用冒号:
分割,每个键值对之间用逗号,
分割,整个字典包括在花括号 {}
中 ,格式如下所示:
>>> dict = {'a': 1, 'b': 2, 'b': '3'}
>>> print(dict)
{'a': 1, 'b': '3'}
### 访问字典里的值
>>> print(dict['b'])
3
### 更新和添加字典
>>> dict['a'] = 8
>>> dict['c'] = 'cc'
>>> print(dict['a'])
8
>>> print(dict['c'])
cc
### 删除字典元素
>>> del dict['a']
>>> print(dict)
{'b': '3', 'c': 'cc'}
>>> dict.clear() # 清空字典所有条目
>>> del dict # 删除字典
组合使用
列表里也能嵌套列表,列表里能嵌套字典
字典里能嵌套字典,字典里也能嵌套列表
这是非常灵活的。
列表嵌套列表
这个用得不多,相对也比较简单,直接看例子:
### 打印输出字符 5
l = [[1,2],[3,4],[[5,6],[7,8]]]
>>> print(l[2][0][0])
5
### 将嵌套列表转为非嵌套列表
>>> a = [[1,2,3],[4,5,6],[7],[8,9]]
>>> for i in a:
... t.extend(i)
...
>>> print(t)
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8, 9]
列表嵌套字典
在列表中嵌套字典应该是最常用的方式了,直接举例说明:
li = [{'a': 1}, {'b': 2}, {'c': 3}]
###(1) 循环获取字典里每个键值对:
>>> for i in range(len(li)):
... for k, v in li[i].items():
... print(k, v)
...
a 1
b 2
c 3
###(2) 获取字典里每个键值对(元组数据类型):
>>> for i in range(len(li)):
... for j in li[i].items():
... print(j)
...
('a', 1)
('b', 2)
('c', 3)
### 可以看到第二种获取到的键值对是 元组数据类型。
字典嵌套字典
字典嵌套字典:字符串作为key,字典作为value:
>>> s={'a':{0:'no',1:{'f':{0: 'no', 1: 'maybe'}}},'b':{}} #构造字典
>>> s['a'][0] # 取值
'no'
>>> s['a'][1]
{'f': {0: 'no', 1: 'maybe'}}
>>> s['a'][1]['f'][1]
'maybe'
### 字典嵌套字典
dict = {
'192.168.1.1':{'cpu':'0.23','内存':'16','硬盘':'500'},
'192.168.1.2':{'cpu':'3.22','内存':'64','硬盘':'700'},
'192.168.1.3':{'cpu':'1.99','内存':'32','硬盘':'800'},
}
### for遍历
>>> for k,v in dict.items():
... print('\n',k,end=': ')
... for x,y in v.items():
... print(x,y,end=' ')
...
192.168.1.1: cpu 0.23 内存 16 硬盘 500
192.168.1.2: cpu 3.22 内存 64 硬盘 700
192.168.1.3: cpu 1.99 内存 32 硬盘 800
字典嵌套列表
那么如何在字典里嵌套列表呢?
字典嵌套列表:字符串作为key,列表作为value。
### 字典嵌套列表
dict = {
'水果':['苹果','香蕉','橘子'],
'动物':['狮子','老虎','大象'],
'语言':['中文','英文','日语'],
}
### 访问字典里的值
>>> print(dict['水果'])
['苹果', '香蕉', '橘子']
### 访问列表里的值
>>> print(dict['语言'][1])
英文
### 循环打印输出看效果
>>> for k, v in dict.items():
... print('\n', k, end=':')
... for x in v:
... print(x,end=' ')
...
水果:苹果 香蕉 橘子
动物:狮子 老虎 大象
语言:中文 英文 日语
嵌套什么时候用
比如希望存储年级前100名学生的各科成绩时,由于学生是由成绩进行排名的,列表是有序的数据类型,而字典是无序的数据类型,所以外面会用列表去存储所有的数据。
而对于学生的各科成绩来说,看重的不是有序,而是需要科目和成绩一一对应,这才是最重要的。或者说当我想获取到年纪第十名同学的语文成绩,那么可以直接去获取到列表对应的索引,和字典里对应的key就可以了,这样就能得到相应的value。
至于嵌套中的排序用法
参考文献
列表:https://www.runoob.com/python/python-lists.html
字典:https://www.runoob.com/python/python-dictionary.html
嵌套字典:https://www.pythonf.cn/read/100118#1.2字典嵌套列表
来源:https://www.cnblogs.com/jiba/archive/2021/06/28/14945833.html
猜你喜欢
- 数据格式:(polygon.txt) 里面含有2个多边形,一行是一个点 0.085, 0.834, 0.024, 0.744, 0, 0.6
- 用采集程序的优点有:无须维护网站,因为采集程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省服务器资源,一般采集程序就几个文件,
- nginx简单配置php服务(多个)摘要:大部分网站开发语言都要运行在服务器,比如主流的nginx、apache等等,部署服务器环境对于大部
- 本文实例为大家分享了python实现决策树分类算法的具体代码,供大家参考,具体内容如下1、概述决策树(decision tree)——是一种
- pytorch常用函数torch.randn()torch.randn(*sizes, out=None) → Tensor功能:从标准正态
- 一、贝叶斯分类介绍贝叶斯分类器是一个统计分类器。它们能够预测类别所属的概率,如:一个数据对象属于某个类别的概率。贝叶斯分类器是基于贝叶斯定理
- 首先祝贺Echarts顺利的从Apache毕业,多了个响亮的名字:Apache ECharts,现在的官网地址在这里:传送门,首页相当的国际
- 1. 得到安全字符串,在查询中使用,过滤单引号。Function Get_SafeStr(str) &nb
- 一、使用xlrd对excel进行数据读取excel表格示例:安装xlrd库pip install xlrd导入xlrd库import xlr
- scikit-learn 是基于 Python 语言的机器学习工具简单高效的数据挖掘和数据分析工具可供大家在各种环境中重复使用建立在 Num
- 本文实例讲述了Python3.4类型判断,异常处理,终止程序操作。分享给大家供大家参考,具体如下:python3.4学习笔记 类型判断,异常
- 没有使用动态语句直接报错 错误的 代码如下:alter proc testpapers as begin declare @tems nva
- 本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法。分享给大家供大家参考。具体实现方法如下:import ma
- 本文介绍urllib库在不同版本的Python中的变动,并以Python3.X讲解urllib库的相关用法。urllib库对照速查表Pyth
- 本文实例讲述了Python可变和不可变、类的私有属性。分享给大家供大家参考,具体如下:可变和不可变items = []print(id(li
- 一、Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建_00——框架结构简解&nb
- 通常说到外键,只会提到“外键的目的是确定资料的参考完整性(referential integrity)。”,但是外键具体包含哪些动作和含义呢
- PHP chr() 函数实例从不同 ASCII 值返回字符:<?php echo chr(52) . "<br>
- 最终效果展示实现思路在绘图区域插入一个嵌入图,嵌入图与原图的绘画保持一致,通过限制嵌入图的x轴和y轴的显示范围,达到缩放的效果,并在原图上绘
- 事务控制的核心——Connection在开始之前,先让我们回忆一下数据库较原始的JDBC是怎么管理事务的: //仅