2024-04-25 13:34:41 发布
网友
我有一些对象列表,如下所示:
oldList=[a,b,c,d,e,f,g,h,i,j,...]
我需要的是创建一个带有嵌套列表项的新列表,该列表项如下所示:
newList=[[a,b,c,d],[d,e,f,g],[g,h,i,j]...]
或者简单地说——上一个嵌套列表中的最后一个元素是下一个新嵌套列表中的第一个元素。你知道吗
其中一种方法是
>>> l = ['a','b','c','d','e','f','g','h','i','j'] >>> [l[i:i+4] for i in range(0,len(l),3)] [['a', 'b', 'c', 'd'], ['d', 'e', 'f', 'g'], ['g', 'h', 'i', 'j'], ['j']]
此处:
l[i:i+4]
i
range(0,len(l),3)
这样做的基本工作是,我们从列表中获取一个由3个元素组成的块,但是我们正在修改切片长度,以便它包含一个额外的元素。这样,我们就可以有一个4元素的列表。你知道吗
小注释-除非先前定义了a、b、c、d等,否则初始化oldList=[a,b,c,d,e,f,g,h,i,j,...]无效。你可能在找oldList = ['a','b','c','d','e','f','g','h','i','j']
a
b
c
d
oldList = ['a','b','c','d','e','f','g','h','i','j']
或者,如果您想要一个只分成甚至大小的块的解决方案,那么您可以尝试以下代码:
>>> [l[i:i+4] for i in range(0,len(l)-len(l)%4,3)] [['a', 'b', 'c', 'd'], ['d', 'e', 'f', 'g'], ['g', 'h', 'i', 'j']]
其中一种方法是
此处:
l[i:i+4]
意味着我们从位置i
开始打印一个由4个值组成的块range(0,len(l),3)
意味着我们通过三次跳转遍历列表的长度这样做的基本工作是,我们从列表中获取一个由3个元素组成的块,但是我们正在修改切片长度,以便它包含一个额外的元素。这样,我们就可以有一个4元素的列表。你知道吗
小注释-除非先前定义了
a
、b
、c
、d
等,否则初始化oldList=[a,b,c,d,e,f,g,h,i,j,...]
无效。你可能在找oldList = ['a','b','c','d','e','f','g','h','i','j']
或者,如果您想要一个只分成甚至大小的块的解决方案,那么您可以尝试以下代码:
相关问题 更多 >
编程相关推荐