相关文章推荐
痴情的斑马  ·  往年讲座课件-厦门大学知识资源港·  5 天前    · 
读研的橡皮擦  ·  解决com.microsoft.sqlser ...·  1 年前    · 
叛逆的木瓜  ·  WPF的路由事件、冒泡事件、隧道事件(预览事 ...·  2 年前    · 
鬼畜的薯片  ·  linux使用yum更新下载时报错PYCUR ...·  2 年前    · 
坚强的馒头  ·  前端关于html2canvas截图的问题? ...·  2 年前    · 
正直的茶叶  ·  MySQL的group by ...·  2 年前    · 
Code  ›  python 字典和列表嵌套用法开发者社区
嵌套 python遍历字典 python for循环 python
https://cloud.tencent.com/developer/article/2077852
谦逊的沙滩裤
2 年前
作者头像
钢铁知识库
0 篇文章

python 字典和列表嵌套用法

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > python爬虫教程 > python 字典和列表嵌套用法

python 字典和列表嵌套用法

作者头像
钢铁知识库
发布 于 2022-08-20 09:04:49
1.9K 0
发布 于 2022-08-20 09:04:49
举报

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'])
### 更新和添加字典
>>> dict['a'] = 8
>>> dict['c'] = 'cc'
>>> print(dict['a'])
>>> print(dict['c'])
### 删除字典元素
>>> 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])
### 将嵌套列表转为非嵌套列表
>>> 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)
###(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]  # 取值
>>> 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=' ')
 
推荐文章
痴情的斑马  ·  往年讲座课件-厦门大学知识资源港
5 天前
读研的橡皮擦  ·  解决com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭 - 每天都要学一点 - 博客园
1 年前
叛逆的木瓜  ·  WPF的路由事件、冒泡事件、隧道事件(预览事件)-阿里云开发者社区
2 年前
鬼畜的薯片  ·  linux使用yum更新下载时报错PYCURL ERROR 56 - "Failure when receiving data from the peer"_冰雪Love齐迹的博客-CSDN博客
2 年前
坚强的馒头  ·  前端关于html2canvas截图的问题? - 知乎
2 年前
正直的茶叶  ·  MySQL的group by 语句中,能否对count的元素进行筛选,在count(1)的同时,也对某个字段count符合条件的数量? - 知乎
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号