Как использовать строковое значение в качестве имени переменной в Python?

Предположим, у меня есть списки:

candy = ['a','b','c'] fruit = ['d','e','f'] snack = ['g','h','i'] 

и строка

  • Как ссылки на переменные разрешаются в Python
  • python 3.2 как передавать данные в переменных между функциями
  • Python: отключить http_proxy в urllib2
  • Использование Python в vimscript: как экспортировать значение из скрипта python обратно в vim?
  • Как импортировать пакеты переменных в Python, как использовать переменные переменные ($$) в PHP?
  • Назначить много переменных одновременно, Python
  •  name = 'fruit' 

    Я хочу использовать name строки для доступа к списку и его содержимому. В этом случае это должен быть fruit . Я буду использовать name для повторного списка. В виде:

     for x in name: print x 

  • Правильное использование глобальных переменных в Python 3
  • Доступ к вложенным словарным элементам через список ключей?
  • Url расшифровывает UTF-8 в Python
  • Когда и как использовать RLock Python
  • python принимает список и возвращает только если отрицательное значение также существует, используя set
  • Функция isalpha python не будет рассматривать пробелы
  • 3 Solutions collect form web for “Как использовать строковое значение в качестве имени переменной в Python?”

    Я не понимаю, чего именно вы пытаетесь достичь, делая это, но это можно сделать с помощью eval . Однако я не рекомендую использовать eval . Было бы лучше, если бы вы сказали нам, чего вы пытаетесь достичь в конце концов.

     >>> candy = ['a','b','c'] >>> fruit = ['d','e','f'] >>> snack = ['g','h','i'] >>> name = 'fruit' >>> eval(name) ['d', 'e', 'f'] 

    РЕДАКТИРОВАТЬ

    Посмотрите на другой ответ Snađошƒаӽ. Это будет лучший путь. eval имеет угрозу безопасности, и я не рекомендую его использование.

    Вы можете использовать globals() следующим образом:

     for e in globals()[name]: print(e) 

    Вывод:

     d e f 

    И если ваши переменные оказываются в какой-то локальной области, вы можете использовать locals()

    ИЛИ вы можете создать свой словарь и получить доступ к этому:

     d = {'candy': candy, 'fruit': fruit, 'snack': snack} name = 'fruit' for e in d[name]: print(e) 

    Используй словарь!

     my_dictionary = { #Use {} to enclose your dictionary! dictionaries are key,value pairs. so for this dict 'fruit' is a key and ['d', 'e', 'f'] are values associated with the key 'fruit' 'fruit' : ['d','e','f'], #indentation within a dict doesn't matter as long as each item is separated by a , 'candy' : ['a','b','c'] , 'snack' : ['g','h','i'] } print my_dictionary['fruit'] # how to access a dictionary. for key in my_dictionary: print key #how to iterate through a dictionary, each iteration will give you the next key print my_dictionary[key] #you can access the value of each key like this, it is however suggested to do the following! for key, value in my_dictionary.iteritems(): print key, value #where key is the key and value is the value associated with key print my_dictionary.keys() #list of keys for a dict print my_dictionary.values() #list of values for a dict 

    словари по умолчанию не упорядочены, и это может вызвать проблемы в строке, однако есть способы обойти это с использованием многомерных массивов или упорядоченных диктов, но мы сохраним это позже! Надеюсь, это поможет!

    Python - лучший язык программирования в мире.