gpt4 book ai didi

python - 根据搜索条件从 Python 数组中返回随机元素

转载 作者:行者123 更新时间:2023-11-28 23:07:02 25 4
gpt4 key购买 nike

如果这很简单,我深表歉意,但我已经寻找了一段时间,但找不到简单、高效的解决方案。

我有一个二维的 Python 列表列表,它只包含 1 和 0。

例如:

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 的阵列执行此操作,并且需要执行多次,因此我可以尽可能高效地执行此操作。

在此先感谢您的帮助和建议!

最佳答案

我会使用列表理解来生成元组列表(位置为 1),然后是 random.choice :

from random import choice

a = [[0,1,0],[0,1,1],[1,0,1]]
mylist = []

[[mylist.append((i,j)) for j, x in enumerate(v) if x == 1] for i, v in enumerate(a)]
print(choice(mylist))

关于python - 根据搜索条件从 Python 数组中返回随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com