Python: извлечение имен переменных из списка строк

#python #list #attributes #names

#python #Список #атрибуты #имена

Вопрос:

У меня есть три фрейма данных:

 butterflies
monkeys
tigers
  

Фреймы данных хранятся в списке с именем «существа», который соответствует списку строк с именем «семейство»:

 creatures = [butterflies, monkeys, tigers]
family = ["insects", "hominids", "cats"]
  

Я создал вспомогательную функцию для присвоения атрибута ‘category’ фреймам данных в списке существ:

 # Helper Function for Assigning Categories
def assign_family(creatures, family):
    
    assigned_frames = []
    for creature, category in zip(creatures, family):
        creature.category = category
        assigned_frames.append(creature.category)
        
    return assigned_frames
  

Это работает!

Если я запущу функцию следующим образом и наберу «butterflies.category»:

 categories = assign_family(creatures, family)
butterflies.category
  

Я получаю:

 "insects"
  

Однако небольшая проблема заключается в том, что когда я печатаю переменную «категории» следующим образом, я получаю:

 print(categories)
["insects", "hominids", "cats"]
  

Для удобства использования я бы хотел, чтобы команда «print (categories)» возвращала имена категорий следующим образом:

 print(categories)
[butterflies.category, monkeys.category, tigers.category]
  

Что мне делать?

Комментарии:

1. Что внутри butterflies.group ? Вы добавляете creature.category в свой цикл, и это то, что будет в вашем списке позже!

2. Опечатка. Исправлено.