相关疑难解决方法(0)

如何将列表拆分为大小均匀的块?

我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.

我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.

我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.

相关问题:在块中迭代列表的最"pythonic"方法是什么?

python split list chunks

2068
推荐指数
40
解决办法
84万
查看次数

在块中迭代列表的最"pythonic"方法是什么?

我有一个Python脚本,它将整数列表作为输入,我需要一次使用四个整数.不幸的是,我无法控制输入,或者我将它作为四元素元组列表传入.目前,我正在以这种方式迭代它:

for i in xrange(0, len(ints), 4):
    # dummy op for example code
    foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
Run Code Online (Sandbox Code Playgroud)

它看起来很像"C-think",这让我怀疑有更多的pythonic方式来处理这种情况.迭代后会丢弃该列表,因此无需保留.也许这样的事情会更好吗?

while ints:
    foo += ints[0] * ints[1] + ints[2] * ints[3]
    ints[0:4] = []
Run Code Online (Sandbox Code Playgroud)

但是,仍然没有"感觉"正确.: - /

相关问题:如何在Python中将列表拆分为大小均匀的块?

python optimization loops list chunks

449
推荐指数
15
解决办法
12万
查看次数

Python迭代器中的hasNext?

有没有Python迭代器得到一个hasNext方法?

python iterator

141
推荐指数
7
解决办法
11万
查看次数

迭代列表切片

我想要一个算法迭代列表切片.切片大小设置在功能之外,可以有所不同.

在我看来它是这样的:

for list_of_x_items in fatherList:
    foo(list_of_x_items)
Run Code Online (Sandbox Code Playgroud)

有没有办法正确定义list_of_x_items或使用python 2.5执行此操作的其他方法?


edit1:澄清 "分区"和"滑动窗口"这两个术语听起来都适用于我的任务,但我不是专家.所以我会更深入地解释这个问题并添加到问题中:

fatherList是我从文件中获取的多级numpy.array.函数必须找到系列的平均值(用户提供系列的长度)平均我正在使用该mean()函数.现在进行问题扩展:

edit2:如何修改你提供的函数来存储额外的项目,并在下一个fatherList被输入函数时使用它们?

例如,如果列表长度为10且块的大小为3,则列表的第10个成员将被存储并附加到下一个列表的开头.


有关:

python iteration loops slice

29
推荐指数
6
解决办法
2万
查看次数

以n的倍数迭代一个python序列?

如何批量处理序列的元素?

例如,使用序列"abcdef"和批量大小为2,我想执行以下操作:

for x, y in "abcdef":
    print "%s%s\n" % (x, y)
ab
cd
ef
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为它期望列表中的单个元素本身包含2个元素.

什么是一个漂亮,简短,干净,pythonic的方式来处理批处理列表中的下一个n个元素,或者从一个更大的字符串处处理长度为n的子字符串(两个类似的问题)?

python iteration

25
推荐指数
6
解决办法
2万
查看次数

需要在python中的迭代器的开头添加一个元素

我有一个程序如下:

a=reader.next()
if *some condition holds*:
    #Do some processing and continue the iteration
else:
    #Append the variable a back to the iterator
    #That is nullify the operation *a=reader.next()*
Run Code Online (Sandbox Code Playgroud)

如何在迭代器的开头添加元素?(或者有更简单的方法吗?)

编辑:好的,让我这样说吧.我需要迭代器中的下一个元素而不删除它.我该怎么做>?

python iterator

3
推荐指数
2
解决办法
3371
查看次数

标签 统计

python ×6

chunks ×2

iteration ×2

iterator ×2

list ×2

loops ×2

optimization ×1

slice ×1

split ×1