我希望将两个列表结合起来,我不确定从哪里开始。 我有一个清单:
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]]
使用列表推导是否有效的方法?
答案 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
的元素,据我从问题中理解声明,持有