gpt4 book ai didi

Python 从列表名称而不是列表项返回字符

转载 作者:行者123 更新时间:2023-12-01 21:23:43 25 4
gpt4 key购买 nike

我正在制作一个简单的应用程序,它会根据类别从列表中随机抽取一个项目。我目前有两个类别(地点和名称)。我正在尝试创建两个函数。一个将随机返回其中一个类别(工作正常),一个将采用随机类别,然后从该类别的列表中随机拉取。

我的问题不是 get_response 函数从列表中返回一个值,而是从它作为参数获取的列表名称中返回一个随机字符。关于如何解决这个问题的任何想法。谢谢

这是我的代码:

from random import randrange

types = ["places", "names"]

places = ["The Upper Room", "Jerusalem", "Church", "Rome"]
names = ["Jesus", "Desciples", "Paul"]


def get_random_type():
return str(types[randrange(0, len(types))])

def get_response(chosentype):
return chosentype[randrange(0, len(chosentype))]

randtype = get_random_type()
print(randtype)
print(get_response(randtype))

编辑:感谢大家的帮助!多么棒的社区!

这是我最终的工作代码。它是多个答案的组合。

import random

categories = ["places", "names"]

options = dict(places = ["The Upper Room", "Jerusalem", "Church", "Rome"],
names = ["Jesus", "Desciples", "Paul"])


def get_random_type():
return random.choice(categories)

def get_response(chosen_category):
category_items = options[chosen_category]
return random.choice(category_items)

print(get_response(get_random_type()))

最佳答案

您可以使用 dictionaryrandom.choice首先从 types 列表中选择一个随机项目,使用它来键入字典,然后再次 choice 从您选择的列表中选择一个随机项目:

>>> from random import choice
>>> types = ["places", "names"]
>>> options = dict(
... places=["The Upper Room", "Jerusalem", "Church", "Rome"],
... names=["Jesus", "Desciples", "Paul"]
... )
>>> choice(options[choice(types)])
Desciples

在您的原始代码中,chosentype[randrange(0, len(chosentype))] 不起作用,因为 chosentype 是一个字符串,所以您实际上是在做:

>>> "foobar"[randrange(0, len("foobar"))]
'o'

这没有多大意义。如果你想坚持这个设计,你就被困住了 keying into globals as if it were a dictionary ,或者编写一个 if-else 分支,这两种方法都不如上述解决方案。

关于Python 从列表名称而不是列表项返回字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63432534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com