python - 生成随机坐标,阻止某些位置
问题描述
我有一个二维数组(18x24),想在这个数组中生成一个随机位置。但是,应该阻止某些位置(这些位置作为元组存储在另一个列表中)。
我可以随机生成 x 和 y 坐标并检查位置是否被阻挡,如果是,则生成一对新坐标。但这似乎非常低效,尤其是在许多位置被封锁的情况下。
解决方案
您可以生成一个“允许列表”(阻止列表的补充)并从中选择一个随机选项。
可以通过设定差异轻松实现。
import random
all_coordinates = {(x,y) for x in range(1,19) for y in range(1,25)}
blocked = {(11,19), (9,4), (2,2)} # just an example
allowed = all_coordinates - blocked
random_allowed = random.choice(list(allowed))
print(random_allowed)
推荐阅读
- sql - 在 IIF(IsError()) 的错误条件下访问更新字段为 NULL 值
- c - 在将 csv 文件读取到 C 中的结构数组时从空行中删除垃圾输出
- python - 为什么我在 python 上得到一个 list object is not callable 错误?
- xcode - 如何复制转发 iOS 模拟器内容
- c++ - 不明白这个返回类型?
- javascript - 如何将我的数组变成格式化的字符串?
- python - 如何从两个或多个数据框中绘制分组条形图
- vue.js - 在打字稿项目中延迟加载路由器时,Vue路由器热重载不起作用
- php - 中午之前的 PHP 时间戳
- node.js - 我的代理有什么问题,它不起作用?