Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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,通过此考试的最佳方式是: board = [['X','o','o','o','o','X'], ['X','o','o','_','_','X'], ['X','o','o','_','_','X'], ['X','o','o','o','X','X'], ['X','o','o','o','X','X'], ['X','o','o','_','X','X'], ['_','o','o','o','X','X']] 为此: """ ╔═══╦═══╦═══╦═══╦═══╦═══╦═

通过此考试的最佳方式是:

board = [['X','o','o','o','o','X'],
['X','o','o','_','_','X'],
['X','o','o','_','_','X'],
['X','o','o','o','X','X'],
['X','o','o','o','X','X'],
['X','o','o','_','X','X'],
['_','o','o','o','X','X']]
为此:

"""
    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║ {} ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝

    """

有格式吗?注意:列表在线路板定义中是垂直的,因此简单的for循环不起作用。

假设
board
是线路板,而
fmt
是格式字符串,在使用任意方法展平后,使用
*
将其解压缩,如生成器表达式:

>>> print(fmt.format(*(item for row in board for item in row)))

    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ X ║ o ║ o ║ o ║ o ║ X ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ o ║ _ ║ _ ║ X ║ X ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ _ ║ _ ║ X ║ X ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ X ║ X ║ X ║ o ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ X ║ X ║ o ║ o ║ _ ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ _ ║ o ║ o ║ o ║ X ║ X ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝
itertools.chain.from\u iterable

>>> import itertools
>>> print(fmt.format(*itertools.chain.from_iterable(board)))

    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ X ║ o ║ o ║ o ║ o ║ X ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ o ║ _ ║ _ ║ X ║ X ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ _ ║ _ ║ X ║ X ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ X ║ X ║ X ║ o ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ X ║ X ║ o ║ o ║ _ ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ _ ║ o ║ o ║ o ║ X ║ X ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝
或者您可以使用普通的
itertools.chain
并首先使用
*
打开
板的包装:

>>> import itertools
>>> print(fmt.format(*itertools.chain(*board)))

    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ X ║ o ║ o ║ o ║ o ║ X ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ o ║ _ ║ _ ║ X ║ X ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ _ ║ _ ║ X ║ X ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ X ║ X ║ X ║ o ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ X ║ X ║ o ║ o ║ _ ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ _ ║ o ║ o ║ o ║ X ║ X ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝

假设
board
是板,而
fmt
是格式字符串,则在使用任意方法(如生成器表达式)展平后,使用
*
将其解压缩:

>>> print(fmt.format(*(item for row in board for item in row)))

    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ X ║ o ║ o ║ o ║ o ║ X ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ o ║ _ ║ _ ║ X ║ X ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ _ ║ _ ║ X ║ X ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ X ║ X ║ X ║ o ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ X ║ X ║ o ║ o ║ _ ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ _ ║ o ║ o ║ o ║ X ║ X ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝
itertools.chain.from\u iterable

>>> import itertools
>>> print(fmt.format(*itertools.chain.from_iterable(board)))

    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ X ║ o ║ o ║ o ║ o ║ X ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ o ║ _ ║ _ ║ X ║ X ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ _ ║ _ ║ X ║ X ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ X ║ X ║ X ║ o ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ X ║ X ║ o ║ o ║ _ ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ _ ║ o ║ o ║ o ║ X ║ X ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝
或者您可以使用普通的
itertools.chain
并首先使用
*
打开
板的包装:

>>> import itertools
>>> print(fmt.format(*itertools.chain(*board)))

    ╔═══╦═══╦═══╦═══╦═══╦═══╦═══╗
    ║ X ║ o ║ o ║ o ║ o ║ X ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ o ║ _ ║ _ ║ X ║ X ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ _ ║ _ ║ X ║ X ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ o ║ X ║ X ║ X ║ o ║ o ║ o ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ X ║ X ║ o ║ o ║ _ ║ X ║
    ╠═══╬═══╬═══╬═══╬═══╬═══╬═══╣
    ║ X ║ _ ║ o ║ o ║ o ║ X ║ X ║
    ╚═══╩═══╩═══╩═══╩═══╩═══╩═══╝

您可能希望使用坐标元组稍微重新定义示例,以便我们可以看到行和列的结束位置。您可能希望使用坐标元组稍微重新定义示例,以便我们可以看到行和列的结束位置。