python中list和dict之间的转换

本文详细介绍了在Python中如何将列表转换成字典,包括使用zip()函数和嵌套列表的方法,以及如何将字典转换回列表。通过具体实例展示了不同情况下的转换规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://blog.youkuaiyun.com/loner_fang/article/details/80940600

列表转换成字典

注:列表不能直接使用dict转换成字典。

方法一:使用zip()函数
a = ['a1','a2','a3','a4']
b = ['b1','b2','b3']
d = zip(a,b)
print(dict(d))  # {'a1': 'b1', 'a2': 'b2', 'a3': 'b3'}

将a和b两个列表内的元素两两组合成键值对。

当两个列表的长度不一致时,多出的元素在另一个列表无匹配的元素时就不展示多出的元素。

方法二:使用嵌套列表转换为字典
a = ['a1','a2']
b = ['b1','b2']
c = [a,b]
print(dict(c)) # {'a1': 'a2', 'b1': 'b2'}
# 相当于遍历子列表,如下
dit = {}
for i in c:
    dit[i[0]] = i[1]
print(dit)

a和b列表内只能有两个元素,将列表内的元素自行组合成键值对。

字典转换成列表

注:字典可以直接使用list转换成列表。

dit = {'name':'zxf',
       'age':'22',
       'gender':'male',
       'address':'shanghai'}

将字典的key转换成列表

lst = list(dit)
print(lst) # [‘name’, ‘age’, ‘gender’, ‘address’]

将字典的value转换成列表

lst2 = list(dit.values())
print(lst2) # [‘zxf’, ‘22’, ‘male’, ‘shanghai’]

### Python 中 `list` `dict` 数据结构的定义、操作方法与应用场景 #### 定义 - **List**: 列表是一种有序的数据集合,支持动态扩展收缩。它允许存储不同类型的对象,并可以通过索引来访问其中的元素[^1]。 - **Dict**: 字典是一个无序的键值对集合,所有的键都是唯一的且不可变(通常为字符串或数字),而值可以是任意类型的对象。字典通过键来快速查找对应的值[^3]。 #### 操作方法 ##### List 的常用操作 - 添加元素:虽然没有显式的 `push()` 方法,但可以用 `append()` 向列表末尾追加单个元素;或者用 `extend()` 追加多个元素组成的可迭代对象。 ```python lst = [1, 2, 3] lst.append(4) # 结果: [1, 2, 3, 4] lst.extend([5, 6]) # 结果: [1, 2, 3, 4, 5, 6] ``` - 删除元素:除了基于位置的 `pop()` 外,还可以依据具体数值调用 `remove(value)` 函数移除首次出现的目标项。 ```python lst.remove(3) # 移除第一个匹配到的'3' popped_element = lst.pop() # 默认弹出最后一个元素并返回其值 ``` - 插入元素:利用 `insert(index, value)` 可指定位置插入新成员。 ```python lst.insert(0, 'start') # 在开头处加入'start' ``` ##### Dict 的常见处理方式 - 创建与修改:可以直接赋值新增条目或是更新已有记录的内容。 ```python d = {} d['key'] = 'value' # 新增/覆盖某个键关联的值 ``` - 遍历读取:借助内置函数如 `keys()`, `values()`, 或者组合形式 `items()` 实现遍历获取全部键名、相应映射后的成果集以及两者配对情况下的联合展示[^2]。 ```python for k in d.keys(): print(k) for v in d.values(): print(v) for key, val in d.items(): print(f"{key}: {val}") ``` - 转换重构:运用诸如 `zip()` 辅助工具完成从其他数据形态向字典型态变的任务。 ```python keys = ['name', 'age'] vals = ['Alice', 25] new_dict = dict(zip(keys, vals)) ``` #### 应用场景 - **Lists** 往往适用于需要保持顺序关系并且可能频繁变动大小的情形下,比如日志记录、队列模拟等场合。 - **Dictionaries**, 因具备高效检索能力,在涉及配置管理、缓存机制实现等方面具有显著优势。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值