python 字典和列表嵌套用法详解

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字典嵌套列表

到此这篇关于python 字典和列表嵌套用法的文章就介绍到这了,更多相关python 字典和列表嵌套内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    在看视频教程的时候提到了[{'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 获取字典键值对的实现

    获 得 字 典 键. 值 的 函 数 有: items/ iteritems/ keys/ iterkeys/ values/ itervalues 通 过 以 上 这 些 函 数 得 到 的 是 键 或 者 值 的 列 表. 例: a_dict = {" name": "sir", "lang": "python", "email": "sir@ gmail.com", "w

  • Python列表嵌套常见坑点及解决方案

    1.嵌套列表 Python中有一种内置的数据类型叫列表(list),它是一种容器,可以用来承载其他的对象(准确的说是其他对象的引用),列表中的对象可以称为列表的元素,很明显我们可以把列表作为列表中的元素,这就是所谓的嵌套列表. 嵌套列表可以模拟出现实中的表格.矩阵.2D游戏的地图(如植物大战僵尸的花园).棋盘(如国际象棋.黑白棋)等. 2.识别坑点 在使用嵌套的列表时要小心,否则很可能遭遇非常尴尬的情况,下面是一个小例子. def main(): names = ['关羽', '张飞', '赵云

  • python 字典和列表嵌套用法详解

    python中字典和列表的使用,在数据处理中应该是最常用的,这两个熟练后基本可以应付大部分场景了.不过网上的基础教程只告诉你列表.字典是什么,如何使用,很少做组合说明. 刚好工作中采集prometheus监控接口并做数据处理的时候,用了很多组合场景,列出几个做一些分享. 列表(List) 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现

  • Python入门基本操作列表排序用法详解

    目录 列表的举例 1.访问python列表中的元素 2.python列表的切片 3.python列表的排序 4.Python列表元素的添加 5.Python列表元素的删除 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现.列表的数据项可以是不同的类型,可以是字符串,可以是数字类型,甚至是列表,元组,只要用","逗号分隔开,就是一个元素. 列表的举例 1.访问python列表中的元素 通过索引直接访问元素,访问单个元素的基本格式为: 列表名[索引值]:访问多个元

  • python中for in的用法详解

    for in 说明:也是循环结构的一种,经常用于遍历字符串.列表,元组,字典等 格式: for x in y:     循环体 执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束. 例1:遍历字符串 s = 'I love you more than i can say' for i in s: print(i) 例2:遍历列表 l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟'] for i in l: print(i) # 可以获取下表,enumerate每次

  • python字典的元素访问实例详解

    说明 1.字典中没有下标的概念,使用key值访问字典中对应的value值.当访问的key值不存在时,代码会报错. 2.get('key'):直接将key值传入函数,当查询到相应的value值时,返回相应的值,当key值不存在时,返回None,代码不会出错. 3.get(key,数据):当查询相应的value值时,返回相应的值,当没有key值时,返回自定义的数据值. 实例 # 定义一个字典 dic = {'Name': '张三', 'Age': 20} # 使用 key 值访问元素 print(d

  • Python进度条tqdm的用法详解

    前言 有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现这一功能并不是什么难事. tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持windows.Linux.mac等系统,支持循环处理.多进程.递归处理.还可以结合linux的命令来查看处理情况,等进度展示. 大家先看看tqdm的进度条效果: tqdm安装:

  • Python字典中items()函数案例详解

    Python3:字典中的items()函数 一.Python2.x中items():   和之前一样,本渣渣先贴出来python中help的帮助信息: >>> help(dict.items) Help on method_descriptor: items(...) D.items() -> list of D's (key, value) pairs, as 2-tuples >>> help(dict.iteritems) Help on method_de

  • Python数据结构之列表与元组详解

    目录 Python 列表(list): 1.序列介绍: 2.列表的概述: 3.创建一个列表 4.列表的索引 5.列表的分片 6.列表的分片赋值 7.循环遍历列表 8.查找元素与计数 9.列表增加元素: 10.列表删除元素: 11.列表排序 Python 元组(tuple): 1.为什么要将元组设计成为不可变序列 2.创建元组 3.元组的遍历 4.元组的内置函数 Python 列表(list): 1.序列介绍:   序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置

  • python re模块的高级用法详解

    总结 以上所述是小编给大家介绍的python re模块的高级用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • python切片及sys.argv[]用法详解

    一.python切片 a=a[::-1] 倒序 a=a[1:10:2] 下标1~10,以2间隔取 a=a[::2] 2间隔返回a[:] a=[1,2,3,4,5,6,7] print(a[::2]) [1,3,5,7] 二.sys.argv[]用法 Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始. 例: import sys,os os.system(sys.argv[1]) 这个例子os.system接收命令行参数,运行参数指令,保存为

  • 对python字典过滤条件的实例详解

    如下所示: d = { 'a': '0.0000', 'b': '1.2' } d_tmp = dict((key, value) for key, value in d.items() if float(value) > 0) print(d_tmp) output: {'b': '1.2'} 以上这篇对python字典过滤条件的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐