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

时间:2019-05-08 17:57:30

标签: python

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

问题是我找不到方法:

  1. 从类或其他允许我初始化结构中变量的结构中随机选择,或
  2. 从变量列表中选择,我不需要重复输入信息

理想情况下,我想要这样的东西:

class Websites:
    google = "https://google.com"
    twitter = "https://twitter.com"
    instagram = "https://instagram.com"

,然后可以从以下选项中进行选择:

print(random.choice(Websites))

我还尝试创建伪开关语句:

from project.config import Websites

def switch_website(random_site):
    _ = Websites

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

但这需要我将变量名同时放在类和字典中,这是有问题的,因为最终列表将很大,并且以后需要用其他站点进行修改。

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

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

您可以为此使用字典:

import random

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

print(random.choice(list(Websites.items())))

如果只需要URL部分,请使用values()而不是items()

print(random.choice(list(Websites.values())))

答案 1 :(得分:0)

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

import random

google = "https://google.com"
twitter = "https://twitter.com"
instagram = "https://instagram.com"

site_list = [google, twitter, instagram]

print(random.choice(site_list))

答案 2 :(得分:0)

在我看来您正在寻找字典。它们使您可以像示例一样存储键/值对(肯定不适合使用此类,也许您习惯于用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