Python-列表转为字典的两个方法

本文介绍两种将列表或嵌套列表转换为字典的方法。第一种方法通过使用zip函数结合两个列表来创建键值对,然后将其转换为字典。第二种方法通过遍历嵌套列表并直接将元素作为键值对添加到字典中。

1、现在有一个列表,list1 = [‘key1’,‘key2’,‘key3’],把他转为这样的字典:{‘key1’:‘1’,‘key2’:‘2’,‘key3’:‘3’}

方法:再构造一个列表list2 = [‘1’,‘2’,‘3’],使用zip转换为元组后,在将元组转换为字典
list1 = ['key1','key2','key3']
list2 = ['1','2','3']
dict(zip(list1,list2))
{'key1':'1','key2':'2','key3':'3'}

2、将嵌套列表转为字典,有两种方法,

new_list= [['key1','value1'],['key2','value2'],['key3','value3']]
dict(list)
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

或者这样:

new_list= [['key1','value1'],['key2','value2'],['key3','value3']]
new_dict = {}
 for i in new_list:
	new_dict[i[0]] = i[1]                #字典赋值,左边为key,右边为value
new_dict
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
### 如何将Python列表转换成字典 #### 方法一:使用 `zip()` 函数 当有两个相同长度的列表时,可以利用 `zip()` 函数将其配对并转化为字典。此方式适用于两个列表分别作为键和值的情况。 ```python keys = ['name', 'age', 'city'] values = ['Alice', 30, 'New York'] my_dict = dict(zip(keys, values)) print(my_dict) # 输出: {'name': 'Alice', 'age': 30, 'city': 'New York'} ``` 这种方法简单直观,并且能够很好地处理一对一映射的需求[^1]。 #### 方法二:使用列表推导式 如果希望自定义键或值,则可以通过列表推导式构建新的元组序列再转化成字典: ```python list_of_items = [('apple', 2), ('banana', 5)] customized_dict = {item[0]: item[1] * 2 for item in list_of_items} print(customized_dict) # 输出: {'apple': 4, 'banana': 10} ``` 这种方式提供了更大的灵活性,在某些特定场景下非常有用[^2]。 #### 方法三:使用 `itertools.zip_longest()` 处理不等长列表 对于不同长度的输入列表,默认情况下 `zip()` 只会遍历到最短的那个结束;而通过引入模块 itertools 的 `zip_longest()` ,可以让较长的一方填充指定默认值完成匹配。 ```python from itertools import zip_longest shorter_list = ["red", "green"] longer_list = [1, 2, 3] filled_dict = dict(zip_longest(shorter_list, longer_list, fillvalue='missing')) print(filled_dict) # 输出: {'red': 1, 'green': 2, None: 'missing'} ``` 这解决了实际应用中遇到的不同长度列表之间的对应关系问题。 #### 方法四:从嵌套列表创建字典 如果有像 `[["key1","val1"],["key2","val2"]]` 这样的二维数组形式的数据集,可以直接解包每项为 key-value 对进而形成目标字典对象。 ```python nested_pairs = [["id", 1], ["name", "John"], ["role", "admin"]] unpacked_dict = {k:v for k,v in nested_pairs} print(unpacked_dict) # 输出: {'id': 1, 'name': 'John', 'role': 'admin'} ``` 这种技巧特别适合解析来自文件或其他外部资源传入的结构化数据[^3]。 #### 方法五:使用 `dict.fromkeys()` 该内置类方法允许快速初始化具有相同初始值得新字典实例,只需传递一个包含所有预期键名组成的可迭代参数即可。 ```python unique_keys = ['a', 'b', 'c'] default_value = 0 initialized_dict = dict.fromkeys(unique_keys, default_value) print(initialized_dict) # 输出: {'a': 0, 'b': 0, 'c': 0} ``` 尽管这里所有的 value 都被设为了同一个数,但在很多场合下已经足够满足需求了[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

精神抖擞王大鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值