此问题已在此处有答案:
How do I make a flat list out of a list of lists?(37答案)
11天前关闭
我是编程新手,开始学习Python编程(纯粹是为了热闹)。所以在学习2D列表和列表理解的时候。我得到了一个错误为'无效语法',而试图打印一个二维列表使用列表理解。老实说,我对列表理解有点困惑。对列表理解的详细解释将是很棒的。
st=input().split()
n,m=int(st[0]),int(st[1])
st=st[2:]
li=[[int(st[m*i + j]) for j in range(m)] for i in range(n)]
print(' '.join([str(ele) for ele in row])) for row in li
1条答案
按热度按时间0s7z1bwu1#
你的代码写得很好,但如果满足某些条件,它就会崩溃。预期的输入看起来像'2 3 1 2 3 4 5 6',其中前两个是维度,其余的是数组的内容。现在,如果您要输入'5 5 2',则脚本需要25个内容值,但它只接收到1个值'2'。
您显示的错误是因为您试图在列表之外使用列表解析语法。例如:
上面的示例显示了您的错误的简化示例。
下面是你的代码的一个版本,它有描述性的注解来描述当列表解析被调用时它在做什么。
运行此代码并输入描述性值,将得到: