【发布时间】:2015-12-05 03:16:48
【问题描述】:
我正在尝试编写一个场景,其中列表列表中的每个值都相同。
在这种情况下,这是我的列表最初的样子。
value = []
for i in range(10):
value.append([])
for j in range(10):
value[i].append(0)
这将创建一个如下所示的列表:(无论如何都是它的一部分)
>>> [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0...
然后我让它以某种方式随机化,随机值变为 1 以显示状态变化。
所以它看起来像:
>>> [[0, 1, 0, 1, 0, 1, 0, 0, 0, 1], [1, 1, 1, 0, 0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 1...
所以这就是我想要做的。 当每个列表中的每个值都改回 0 时,我想要某种方法来确定它们都等于 0。
这样可以像if语句一样使用,当所有的都为0时,就会触发一些事情发生,比如执行另一个由此引起的函数。
我曾考虑过使用all() 函数,但这似乎不太好用:
if all(i=True in range(all(j==0 in value[i][j]))):
if all(i==0 for value[j] in value for j in value)
【问题讨论】:
-
您的无效代码在哪里?这没什么帮助。
-
@KevinGuan 我试过这样的事情:
if all(i=True in range(all(j==0 in value[i][j]))):和if all(i==0 for value[j] in value for j in value) -
其中第一个有一个会导致语法错误的赋值,没有
for(可能是另一个语法错误),并且在对all()的调用中是不可迭代的。它甚至没有意义。第二个也差远了。我建议看看official Python tutorial。
标签: python list python-3.x nested-lists