Python 如何在初始化变量的结构之间随机选择?

Python 如何在初始化变量的结构之间随机选择?,python,Python,我试图将字符串分配给变量,然后从这些变量中随机选择 问题是我找不到一种方法: 从类或其他结构中随机选择,允许我初始化结构中的变量,或 从变量列表中进行选择,在该列表中我不需要重复键入信息 理想情况下,我想要这样的东西: class Websites: google = "https://google.com" twitter = "https://twitter.com" instagram = "https://instagram.com" 然后可以从以下选项中进行选

我试图将字符串分配给变量,然后从这些变量中随机选择

问题是我找不到一种方法:

从类或其他结构中随机选择,允许我初始化结构中的变量,或 从变量列表中进行选择,在该列表中我不需要重复键入信息 理想情况下,我想要这样的东西:

class Websites:
    google = "https://google.com"
    twitter = "https://twitter.com"
    instagram = "https://instagram.com"
然后可以从以下选项中进行选择:

print(random.choice(Websites))
我还尝试创建了一个伪switch语句:

from project.config import Websites

def switch_website(random_site):
    _ = Websites

    return {
         1: _.google
         2: _.twitter,
         3: _.instagram
    }[random_site]

但这需要我在类和字典中都添加变量名,这是有问题的,因为最终的列表将非常大,需要稍后用额外的站点进行修改

抱歉,如果我使用了错误的术语,我昨天开始使用Python


谢谢你的帮助

您可以使用字典来完成以下操作:

import random

Websites = {
    "google": "https://google.com",
    "twitter": "https://twitter.com",
    "instagram": "https://instagram.com",
}

print(random.choice(list(Websites.items())))
如果只需要URL部分,请使用值而不是项:


如果您只需要从几个值中获取随机值,请创建这些值的列表并使用随机选择

随机输入 谷歌=https://google.com 推特=https://twitter.com instagram=https://instagram.com 站点列表=[谷歌、推特、instagram] printrandom.choicesite_列表
我觉得你好像在找字典。这让您可以像您的示例一样存储键值对。一个类似乎不适合这样做。当然,也许您已经习惯于用Java之类的类来定义所有内容。你可以像这样完成你的例子还有其他方法我相信:

import random

websites = {
    'google': "https://google.com",
    'twitter': "https://twitter.com",
    'instagram': "https://instagram.com"
}

website_name_list = list(websites.keys())
print(website_name_list)
random_website_name = random.choice(website_name_list)
print(random_website_name)
corresponding_url = websites[random_website_name]
print(corresponding_url)
其中一个示例输出是

['twitter', 'google', 'instagram']
google
https://google.com

您应该使用实例变量并实例化类,然后使用random.choicelistvarsinstance。values@juanpa.arrivillaga理想的解决方案!非常感谢。事后看来,上述解决方案可能并不理想,因为它似乎偶尔会给我varsinstance的垃圾值。对此不太确定,如果你知道的话,请其他人插话^_^垃圾值是什么意思?varsinstance将只返回实例的名称空间dict。所以,如果有垃圾值,这意味着你的实例有垃圾值,不管它确切的意思是什么。因为在这种情况下,你看到的是varsMy_类的varsinstance_,而不是varsinstance_,这就是我最初说使用实例变量并实例化你的类的原因。您使用的是类变量和类,而不是实例。是的,我相信这正是我所需要的,谢谢!我只是没有意识到价值观和物品是一种选择。很高兴知道!我会做更多的研究,看看字典能做些什么。再次感谢!
['twitter', 'google', 'instagram']
google
https://google.com