这个问题已经在这里有了答案 :
迭代访问列表的最“ pythonic”方法是什么? (37个答案)
5年前关闭。
假设我有一个任意长度L的列表:
L = list(range(1000))
将列表分成几组的最佳方法是n
什么?这是我能够想到的最佳结构,由于某种原因,它似乎并不是完成任务的最佳方法:
n = 25
for i in range(0, len(L), n):
chunk = L[i:i+25]
有内置的功能可以做到这一点吗?
编辑:
早期的答案是将我的for循环重新制作为listcomp,这不是这个主意;您基本上是用另一种形式给我我的确切答案。我正在查看是否有替代方法可以完成此任务,例如.split
列表上的假设或类似内容。我也在昨晚编写的一些代码中将其用作生成器:
def split_list(L, n):
assert type(L) is list, "L is not a list"
for i in range(0, len(L), n):
yield L[i:i+n]
甲的Python配方(在Python
2.6,使用itertools.izip_longest
):
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return itertools.zip_longest(*args, fillvalue=fillvalue)
用法示例:
>>> list(grouper(3, range(9)))
[(0, 1, 2), (3, 4, 5), (6, 7, 8)]
>>> list(grouper(3, range(10)))
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, None, None)]
如果您希望最后一组短于其他组而不是用填充fillvalue
,则可以例如更改如下代码:
>>> def mygrouper(n, iterable):
... args = [iter(iterable)] * n
... return ([e for e in t if e != None] for t in itertools.zip_longest(*args))
...
>>> list(mygrouper(3, range(9)))
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
>>> list(mygrouper(3, range(10)))
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
问题内容: 我的网页上有一个“瘦”列表:例如,一个包含100个项目的列表,每个项目的长度为一个单词。为了减少滚动,我想在页面的两列甚至四列中显示此列表。我该如何使用CSS? 我希望该解决方案具有灵活性,这样,如果列表增加到200个项目,则无需进行很多手动调整即可容纳新列表。 问题答案: ul { -moz-column-count: 4; -moz-column-gap: 20px; -webki
我非常困惑,因为如何才能从另一个方法获取ArrayList,并将其打印到另一方法?所以我这里的问题是,我的代码是关于学生注册系统的,它有两个方法,即admin和student,所以从admin方法,我们可以添加我们想要的数组,当我们在admin方法中打印出来时,它可以正常工作。但当我试图用学生法打印出来时,似乎没有用。代码如下: 我真的希望有人能理解我的问题,并努力解决它..请:(也谢谢你 以下是
我肯定这是一个愚蠢的问题,但我找不到一个简单的方法将一个列表按另一个列表分组。我在网上搜索了很多,但我只找到了带有类属性或排序元素的示例。 我有一个带有键的字符串列表,例如: 和一个我想按键列表分组的int列表,例如: 因此结果应该是一个包含子列表的列表,如下所示: 或者也可以得到指数。提前道谢。
问题内容: 我有一个ArrayList,我想将其分成n个大小的较小列表,并对每个列表执行一个操作。我目前这样做的方法是 用Java中的ArrayLists实现(任何伪代码都可以) 其中A是列表,n是所需列表的大小 我认为在处理相当大的列表(最大为100万个)时,这种方法会花费太多时间,因此我试图找出哪种方法更有效。 问题答案: 您需要做一些利用List.subList(int,int)视图的事情,
我现在制作了一个arraylist并返回它,就像在一个void中一样。现在我得到了这样的东西,我知道我必须更改静态void t其他东西才能返回它,但我丢失了该版本的代码。 如何使用已填充的列表从一个空到另一个空?问题不在于ArrayList的填充或我在声明ArrayList时犯的任何错误,而在于如何使用返回的列表
我有一个数据框,其中我只需要值包含某个值的。我已经实现了。我现在想要的是按用户分组的列表。我得到的是列表中数据框的每个元素。如何获取此列表