另一个超级noob问题 为什么
a = [["?" for i in range(6)] for i in range(6)]
创建一个6x6阵列,带有单独的“?”s
print(a)
给予
[['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?']]
但是
a = [["?" * 6] *6]
一起创建带有“”的a1x6阵列
print(a)
给予
[['??????', '??????', '??????', '??????', '??????', '??????']]
如何创建6x6而不在声明步骤中使用for循环
让我们看看你写的东西
中间位
"?" * 6
是一个由6个问号组成的字符串。当你用方括号括起来时,你会得到一个包含这个字符串的列表,所以然后将该列表乘以6,得出:
你把整件事都放在另一张单子上
或者,您可能打算这样做:
这确实给了你一个你想要的列表
然而,这实际上是另一个列表中的一个内部列表
['?', '?', '?', '?', '?', '?']
六次。因此,如果您尝试修改内部元素,您会发现每个内部列表都被修改您最好使用列表理解或中间立场,即:
如果必须在没有明确的
for
的情况下执行此操作:或
相关问题 更多 >
编程相关推荐