Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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 使用izip_从特定点填充_Python_Icc - Fatal编程技术网

Python 使用izip_从特定点填充

Python 使用izip_从特定点填充,python,icc,Python,Icc,我有以下代码: #!/bin/python from itertools import chain, izip_longest def filltape(n): numlist = list(range(-(2*n)+1, (2*n)+1)) alphalist= list("".join('BA' for i in xrange(n))) print list(chain(*izip_longest(numlist, alphalist, fillvalue=' ')

我有以下代码:

#!/bin/python

from itertools import chain, izip_longest
def filltape(n):    
  numlist = list(range(-(2*n)+1, (2*n)+1))  
  alphalist= list("".join('BA' for i in xrange(n)))
  print list(chain(*izip_longest(numlist, alphalist, fillvalue=' ')))
filltape(4)
输出为:

 [-7, 'B', -6, 'A', -5, 'B', -4, 'A', -3, 'B', -2, 'A', -1, 'B', 0,'A', 1, ' ', 2, ' ', 3, ' ', 4, ' ', 5, ' ', 6, ' ', 7, ' ', 8, ' ']
我不知道如何将较短的列表从一半打印到较长的列表,基本上我希望输出如下所示:

[-7, ' ', -6, ' ', -5, ' ', -4, ' ', -3, ' ', -2, ' ', -1, ' ', 0, ' ', 1, 'B', 2, 'A', 3, 'B', 4, 'A', 5, 'B', 6, 'A', 7, 'B', 8, 'A']
背景:我正在尝试解决这个问题。

实现这一点的一种方法(虽然不是最有效的)是反转列表、压缩,然后反转压缩:

>>> def filltape(n):
...   numlist = list(range(-(2*n)+1, (2*n)+1))
...   alphalist= list("".join('BA' for i in xrange(n)))
...   print list(chain(*izip_longest(alphalist[::-1],numlist[::-1], fillvalue=' ')))[::-1]
...
>>> filltape(4)
[-7, ' ', -6, ' ', -5, ' ', -4, ' ', -3, ' ', -2, ' ', -1, ' ', 0, ' ', 1, 'B', 2, 'A', 3, 'B', 4, 'A', 5, 'B', 6, 'A', 7, 'B', 8, 'A']

这是可能的,但这是他在问题中想要的输出。我知道现在正在尝试的是/可能不是解决ACM问题的方法,但我想要的输出是通过fredtantini的回答实现的,谢谢!