微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Python中的字典理解将3个列表唯一地组合成1个列表

我是学习 Python的新手,我是几百行的代码

start = ['12','08','07','16','04']
middle = ['01','01','01']
end = ['13','15','05']

期望的输出(按顺序):

[('1201': '13'),('0801': '07'),('0701': '08'),('1601': '15'),('0401','05')]

下面的代码将无法保持原始顺序(我使用python 3.4卡住了,知道3.7会解决这个问题)

Combined_Lists = {start+middle: end for start,middle,end in zip(start,end)}

当我尝试以下时,它会出错

from collections import OrderedDict
Combined_Lists = {start+middle: end for start,end in OrderedDict(zip(start,end))}

错误

ValueError: too many values to unpack (expected 2)

在这里错过了什么?

解决方法

您的zip生成3个值,但OrderedDict需要可迭代的(键,值)对.

od = OrderedDict((s+m,e) for s,m,e in zip(start,end))

之后您无法将其解压缩到常规字典中,因为这样您就会丢失订单.

您想要的输出一个列表,所以您可能正在寻找

[(s+m,end)]

代替.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐