如何把单个列表转为字典呢?当然 普通方法很简单,循环遍历列表 然后根据key:value方式赋值给字典即可.

但还有更简洁的方法用python的内置函数iter()和zip()来转换,先看下iter()的说明:

iter函数: 将容器类型或者序列类型转为迭代器对象;获取可迭代对象身上的迭代器, 会调用可迭代对象身上的iter的方法。

语法: iter(object[, sentinel])

参数: object:迭代的集合对象,且支持迭代协议或者支持序列协议。

   sentinel :如果传递了第二个参数,则参数object必须是一个可调用的对象(如:函数),此时,iter创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用object。

返回值: 返回迭代器对象

zip() 函数: 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

如果需要了解 Pyhton3 的应用,可以参考 Python3 zip()

语法: zip([iterable, ...])

参数:iterabl -- 一个或多个迭代器;

返回值:返回元组列表。

直接看例子吧:

1 a_list = ['a', '1', 'b', '2','c', '3','d', '4']
2 a = iter(a_list)
3 a_dic = dict(zip(a, a))
4 print(a_list)
5 print(a_dic)

打印输出

小提示:

要转成字典的单个列表元素个数如果是奇数, 转为字典后会丢失最后一个元素. 所以转换之前最好确认列表中元素的个数.

posted on 2021-08-25 22:06  FilexHu  阅读(2259)  评论(0编辑  收藏  举报