组合和复制列表中的元素

时间:2017-05-05 17:51:26

标签: python list

我希望将两个列表结合起来,我不确定从哪里开始。 我有一个清单:

l = ['a','b','c','d'] 

包含4个元素,以及5个数字的列表:

n = [0,10,20,30,40] 

我想要做的是创建一个新列表,列出数字与字母之间的范围。像这样:

newlist = [['a',0,10],['b',10,20],['c',20,30],['d',30,40]]

使用列表推导是否有效的方法?

2 个答案:

答案 0 :(得分:3)

使用zip()函数短单行

result = [list(i) for i in zip(l, n, n[1:])]

print(result)

输出:

[['a', 0, 10], ['b', 10, 20], ['c', 20, 30], ['d', 30, 40]]

答案 1 :(得分:1)

我建议:

newlist=[[item, n[j], n[j+1]] for j, item in enumerate(l)]

输出正是您所要求的:

[['a', 0, 10], ['b', 10, 20], ['c', 20, 30], ['d', 30, 40]]

此代码处理任意长度的列表,唯一强加的条件 - 列表l必须是一个小于列表n的元素,据我从问题中理解声明,持有