Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表拆分为偶数位置_Python_Python 3.x - Fatal编程技术网

Python 将列表拆分为偶数位置

Python 将列表拆分为偶数位置,python,python-3.x,Python,Python 3.x,我在Python 3中有以下列表: ['X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.', 'X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O', 'X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '

我在Python 3中有以下列表:

['X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.', 'X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O', 'X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'O', 'O', 'X', 'X', 'O', 'X', 'X', 'X', 'O', 'X', '.', 'T', 'O', '.', '.', 'O', 'X', 'X', 'X', 'O', '.', '.', 'O', '.', '.', 'O', '.', '.', 'T', '.', '.', '.', 'O', 'X', 'X', 'X', 'X', 'O', '.', '.', '.', '.', 'O', '.', '.', '.', '.', 'O']
16个位置之后,我想这样分割它:

CASE_1 = ['X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.']
CASE_2 = ['X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O']
CASE_3 = ['X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.']
CASE_4 = ['O', 'O', 'X', 'X', 'O', 'X', 'X', 'X', 'O', 'X', '.', 'T', 'O', '.', '.', 'O'] etc
我如何做到这一点? 谢谢

我将通过打印出来向您展示它与示例相匹配

>>> import pprint
>>> pprint.pprint(cases, width=400)
[('X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.'),
 ('X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O'),
 ('X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'),
 ('O', 'O', 'X', 'X', 'O', 'X', 'X', 'X', 'O', 'X', '.', 'T', 'O', '.', '.', 'O'),
 ('X', 'X', 'X', 'O', '.', '.', 'O', '.', '.', 'O', '.', '.', 'T', '.', '.', '.'),
 ('O', 'X', 'X', 'X', 'X', 'O', '.', '.', '.', '.', 'O', '.', '.', '.', '.', 'O')]
至于这是如何运作的:

我将通过打印出来向您展示它与示例相匹配

>>> import pprint
>>> pprint.pprint(cases, width=400)
[('X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.'),
 ('X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O'),
 ('X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'),
 ('O', 'O', 'X', 'X', 'O', 'X', 'X', 'X', 'O', 'X', '.', 'T', 'O', '.', '.', 'O'),
 ('X', 'X', 'X', 'O', '.', '.', 'O', '.', '.', 'O', '.', '.', 'T', '.', '.', '.'),
 ('O', 'X', 'X', 'X', 'X', 'O', '.', '.', '.', '.', 'O', '.', '.', '.', '.', 'O')]
至于如何做到这一点:

“应该有一种——最好只有一种——显而易见的方法。”

“应该有一种——最好只有一种——显而易见的方法来做到这一点。”


+回答得好。但是我不认为需要
list()
:p.@Haidro它在Python2上是多余的,但是在Python3AH上你需要它,那我就错了。抱歉:)@Haidro这对Python 2用户来说是值得注意的,我忘了提一下it@jsbueno如果它是Python开发人员自己支持的,那怎么会是黑客呢:(寻找grouper配方)你所说的不能依赖
zip
是错误的+回答得好。但是我不认为需要
list()
:p.@Haidro它在Python2上是多余的,但是在Python3AH上你需要它,那我就错了。抱歉:)@Haidro这对Python 2用户来说是值得注意的,我忘了提一下it@jsbueno如果它是Python开发人员自己支持的,那怎么会是黑客呢:(寻找grouper配方)你所说的不能依赖
zip
是错误的@jamylak同意,这是链接的副本question@Lewis:我强烈建议您使用一个更简单且易于维护的实现,如我提供的实现。JAMLAK的渲染可能会起作用,但我认为它比真正的代码更有趣。它在Python实现中不可靠,并且很难理解和维护。@jsbueno我的代码非常好:)检查我的回答下面的注释你的代码比我的慢两倍多——也就是说,如果数据集不够大,那么你的方式就不会到处出现缓存未命中。将数据分散到任何地方只是为了重新连接,而您只需要相同的数据块显然不是最好的方法。@jamylak同意,这是链接的重复question@Lewis:我强烈建议您使用一个更简单且易于维护的实现,如我提供的实现。JAMLAK的渲染可能会起作用,但我认为它比真正的代码更有趣。它在Python实现中不可靠,并且很难理解和维护。@jsbueno我的代码非常好:)检查我的回答下面的注释你的代码比我的慢两倍多——也就是说,如果数据集不够大,那么你的方式就不会到处出现缓存未命中。当您只需要相同的数据块时,将数据分散到任何地方以重新连接它显然不是最好的方法。
>>> a = ['X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.', 'X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O', 'X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'O', 'O', 'X', 'X', 'O', 'X', 'X', 'X', 'O', 'X', '.', 'T', 'O', '.', '.', 'O', 'X', 'X', 'X', 'O', '.', '.', 'O', '.', '.', 'O', '.', '.', 'T', '.', '.', '.', 'O', 'X', 'X', 'X', 'X', 'O', '.', '.', '.', '.', 'O', '.', '.', '.', '.', 'O']
>>> b = [a[i: i + 16] for i in range(0,len(a), 16)   ]
>>> from pprint import pprint
>>> pprint(b, width=400)
[['X', 'X', 'X', 'T', '.', '.', '.', '.', 'O', 'O', '.', '.', '.', '.', '.', '.'],
 ['X', 'O', 'X', 'T', 'X', 'X', 'O', 'O', 'O', 'X', 'O', 'X', 'X', 'X', 'O', 'O'],
 ['X', 'O', 'X', '.', 'O', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'],
 ['O', 'O', 'X', 'X', 'O', 'X', 'X', 'X', 'O', 'X', '.', 'T', 'O', '.', '.', 'O'],
 ['X', 'X', 'X', 'O', '.', '.', 'O', '.', '.', 'O', '.', '.', 'T', '.', '.', '.'],
 ['O', 'X', 'X', 'X', 'X', 'O', '.', '.', '.', '.', 'O', '.', '.', '.', '.', 'O']]