python 合并两个列表_一行代码,把两个列表合并成字典,这个面试有点难

请用一行代码把下面列表合成一个字典

list1 = ['name', 'age', 'gender']list2 = ['张三', 18, '男']

方案1

先写个长代码,然后用Python的列表解析合成一行。

思路是这样的,先分别循环两个列表,把序号相同的塞到一个键值对里面。

普通版本:

c2324580671c998ff2c1890aa7a1f084.png

一行代码版:

temp_dict2 = dict([(l1, l2) for index1, l1 in enumerate(list1) for index2, l2 in enumerate(list2) if index1 == index2])

看看输出结果:

c2bf56ad5846fe68a7f237040ce873fa.png

方案二

第二种办法比第一种运行的速度快点,但是重复造轮子,不是很Python的e。

看看这种写法

dict(zip(list1,list2))
adccaa5c16f486255e7e8901b6c5fbb1.png

说说zip了,zip接受迭代函数,逐个取出,组成元组,放入字典。不可思议的是,这种列表元组对的格式可直接转换为字典的。

zip(list1,list2)

在python3当中,返回的是可迭代对象,更节省内存。查看原貌,可用list转化

90f1ceb04a87f80b054d389cd33fa8b6.png

相关阅读:

python-selenium登陆今日头条

内存只有1GB,老板让我读取4GB的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值