【发布时间】:2018-01-30 22:49:41
【问题描述】:
我有一个 Python 函数,它从现有列表名称的文本文件中随机选择现有列表的名称,并将所选列表名称作为字符串返回。在函数之外,脚本应该打印该列表的内容。
我遇到的问题是弄清楚如何(在函数之外)打印/访问函数以字符串形式返回名称的列表。
如果我在函数之外创建列表:
list_number_one = ['apples', 'oranges', 'pears']
list_number_two = ['bananas', 'grapes', 'unbridled existentialism']
函数本身看起来像:
def pick_a_list(list1, list2):
list_of_lists = [list1, list2]
random_list = random.choice(list_of_lists)
return random_list
当我使用该功能时...
chosen_list = pick_a_list('list_number_one', 'list_number_two')
如果它返回字符串“list_number_one”作为随机选择的列表,那么我该怎么做(在函数之外):
print (chosen_list)
并得到回报:
['apples', 'oranges', 'pears']
在实际脚本中,假设我唯一的选择是将字符串变量作为列表名称的输入,这可能很不方便。我正在使用的列表数量非常多。我搜索了高低的答案,但我发现的所有问答都是关于基于变量输入分配键/值对。任何帮助将不胜感激,我不想只是用全局变量轰炸函数。
【问题讨论】:
-
为什么要在选择列表时传递字符串?传递列表..“在实际脚本中,假设我唯一的选择是将字符串变量作为列表名称的输入,这可能很不方便”我们为什么要假设?这可能是什么原因?
-
您应该使用单个字典来包含列表。
-
当然,您可以使用字符串从
globals()命名空间字典中提取列表,但是为什么要这样滥用全局命名空间呢?相反,您应该组织您的程序,以便将所需的数据放入适当的数据结构中。
标签: python python-3.x