首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据输入从2D数组中选择某项

根据输入从2D数组中选择某项
EN

Stack Overflow用户
提问于 2022-06-29 18:24:58
回答 1查看 34关注 0票数 2

我有一个2d数组,我想从程序中搜索。

代码语言:javascript
复制
HabitatGroups = [["amethyst","silver","crystal","copper","red"],#mountain/hill
                 ["black","gold","green"],#swamp/forest
                 ["amethyst","blue","bronze","gold","topaz"],#water adjacent
                 ["blue","brass","copper"],#warm dry
                 ["white","crystal","silver"],#cold
                 ["sapphire","emerald","crystal","amethyst","blue"]]#underground

x=input("Choose a type of dragon")

基本上,我希望程序取x,并使用它从x所在的所有列表中随机选择。如果x是“银色”,程序将搜索山/山和冷段的数组,并随机选择一个不同的选项。我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-29 18:47:36

一个可能的解决方案是使用random.choice

代码语言:javascript
复制
import random

HabitatGroups = [
    ["amethyst", "silver", "crystal", "copper", "red"],  # mountain/hill
    ["black", "gold", "green"],  # swamp/forest
    ["amethyst", "blue", "bronze", "gold", "topaz"],  # water adjacent
    ["blue", "brass", "copper"],  # warm dry
    ["white", "crystal", "silver"],  # cold
    ["sapphire", "emerald", "crystal", "amethyst", "blue"], # underground
]


x = input("Choose a type of dragon: ")

sample = set()
for g in HabitatGroups:
    if x in g:
        for v in g:
            if v != x:
                sample.add(v)

print(random.choice(list(sample)) if len(sample) > 0 else "Not Found")

打印(例如):

代码语言:javascript
复制
Choose a type of dragon: silver
crystal

如果在HabitatGroups中找不到输入,它会打印Not Found

注意:考虑在HabitatGroups中使用sets而不是list来加快sample列表的创建。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72806185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档