【发布时间】:2011-05-13 23:25:21
【问题描述】:
抱歉,如果这很简单,但我一直在寻找一段时间,找不到简单、有效的解决方案。
我有一个仅由 1 和 0 组成的二维 Python 列表。
例如:
a=[[0,1,0],[0,1,1],[1,0,1]]
我希望随机返回 = 1 的随机元素的索引。在这种情况下,我希望返回:
[0,1], [1,1], [1,2], [2,0], or [2,2]
概率相等。
我可以遍历结构中的每个元素并编译一个符合条件的索引列表,然后使用 random.choice(list) 随机选择一个 - 但这似乎很慢,我不禁觉得有一个更整洁的,更 Pythonic 的方式来解决这个问题。我可能会为一个 20x20 的阵列执行此操作,并且需要执行多次,因此我可以尽可能高效地执行此操作。
提前感谢您的任何帮助和建议!
【问题讨论】:
-
你确定你有一个数组吗?还是列表列表?
-
“很多次”是指在同一个数组上做多次,还是针对不同的数组?
-
抱歉,列表列表。我的错。我会更正帖子。
-
我需要多次对同一个数组执行此操作,但数组中的元素不会是静态的。每隔一段时间,某些元素的值就会翻转。
-
“数组”是静态的吗(你提到
a 20x20 array)?如果是这样,您可以生成一次可能性并继续使用该列表作为随机数的输入。
标签: python arrays search indices