使用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)]

代替.

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...