Python:调用预定义变量/ list / etc.来自用户输入

时间:2018-04-18 09:09:24

标签: python variables global-variables constants user-input

提前感谢您的帮助!我在Python中有以下问题(我使用Py 3.6.5):

  1. 我有一些列表,其中包含一些值。 (我想将这些值用作整个程序的预定义常量。)

  2. 主要程序要求用户命名其中一个列表。例如。用户写道:List1

  3. 我想写一个函数,然后返回List1的第一个元素。如果用户写入List2,那么该函数应该打印List2的第一个元素等(不需要,只有在需要时才能获得所需的结果)

  4. 我希望代码看起来像这样。我只是想表明,用户的输入存储在"变量"中,然后被赋予ListCall函数。

    List1 = [1,2,3]
    List2 = [4,5,6]
    
    def ListCall(List):
        #Some Code
        print(List[0])
    
    # MAIN
    Variable = input('Please choose a List: ')
    ListCall(Variable)
    

    不知怎的,我设法通过以下代码实现了这个期望的结果:

    List1 = [1,2,3]
    List2 = [4,5,6]
    
    Variable = vars()[(input('Please choose a List: '))]
    
    print("First element of the choosen List is: ", Variable[0])
    

    但我非常确定,这不是最优雅的方法,而vars()也许并不适合这种用法。 如果不需要,我甚至不会使用单独的ListCall功能......我只是希望它以最合适的方法工作。

1 个答案:

答案 0 :(得分:0)

您可以将列表存储在词典中:

my_dict = {
              "List1": [1, 2, 3],
              "List2": [4, 5, 6]
          }
variable = input('Please choose a List: ')
try:
    print("First element of the choosen List is: ", my_dict[variable][0])
except KeyError:
    print("The list " + variable + "do not exist")