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

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

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

и строка

 name = 'fruit' 

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

 for x in name: print x 

  • Как сравнить две строки в python?
  • Как выполнить цикл for в пакетах?
  • Разница между numpy.genfromtxt и numpy.loadtxt и распаковка
  • Неверный список, возвращаемый в python
  • Функция isalpha python не будет рассматривать пробелы
  • Присвоить 0 определенным словам, если слов нет
  • Как определить, содержит ли 2-мерный список значение?
  • Список фильтров 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 - лучший язык программирования в мире.