【问题标题】:Random choice of of item in list with condition根据条件随机选择列表中的项目
【发布时间】:2021-10-12 05:10:15
【问题描述】:

我想知道是否可以对列表列表执行 random.choice() 并且只选择一个坐标为 0。也可以有两个然后将随机选择的坐标保存到一个变量中?

即我有一个这样的列表列表:

[[0, 2, 0, 0, 0],
 [0, 0, 0, 0, 1],
 [0, 0, 1, 2, 0],
 [0, 2, 0, 0, 0],
 [0, 0, 0, 0, 0]]

我只想选择那些为 0 的坐标,然后将该坐标保存到变量中。

谢谢。

【问题讨论】:

    标签: python list random


    【解决方案1】:

    使用推导式获取项目坐标等于0:

    import random
    
    L = [[0, 2, 0, 0, 0],
         [0, 0, 0, 0, 1],
         [0, 0, 1, 2, 0],
         [0, 2, 0, 0, 0],
         [0, 0, 0, 0, 0]]
    
    coords = [(x, y) for x, l in enumerate(L) for y, i in enumerate(l) if i == 0]
    
    x, y = random.choice(coords)
    
    >>> L[x][y]
    0
    

    【讨论】:

      【解决方案2】:

      随机整数可以任意大 - 实际上远高于整数级别,不仅仅是 0、1 和 2。这里是剪切/粘贴:

      random.nextOct = 223,372,036,854,775,807,147,483,647

      您只需要覆盖 Random 类。并在里面施加条件。

      这是一个链接:

      https://cyberconfidential.net/Comparisson1.html#HOW

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        • 2018-06-07
        • 2022-11-21
        • 1970-01-01
        相关资源
        最近更新 更多