使用List Comprehensions在列表中创建多个SubList

时间:2017-03-27 11:23:59

标签: python list-comprehension

我有一个清单:

list1 = [0,2,4,6]

这里我想在list1中添加数字2并在新列表中创建一个子列表,并使用第一个子列表创建另一个子列表以创建新的子列表。 我想在list1的帮助下创建一个新的列表,仅使用list comprehentions,也可以单行创建。

newList = [[2,4,6,8],[4,6,8,10],[6,8,10,12]]

例如:

newList = [a+2 for a in list1]

但是使用这段代码,我只能在newList中创建一个列表。但是我想在newList中使用list comprehensions相应地创建3个子列表。

1 个答案:

答案 0 :(得分:3)

鉴于

list1 = [0,2,5,6]

您可以使用2个嵌套列表推导在列表中创建3个列表:

newlist = [[x+2*(i+1) for x in list1] for i in range(3)]

结果

[[2, 4, 7, 8], [4, 6, 9, 10], [6, 8, 11, 12]]

与问题中的不同,但Jim同时编辑了它(为了正确),我个人更喜欢输入列表没有内部逻辑(否则我们可能只想使用range解决这个问题。)

请注意,我们只能使用列表推导来完成它,因为我们可以从初始输入列表中推断出子列表。通常,使用列表推导来计算前一个元素的当前元素是不可能的。在这种情况下,您必须切换到“经典”for循环。