я делаю словарь а для ключей я пытаюсь использовать атрибут .name объектов в списке когда я индексирую элемент списка, я указываю список и объект внутри как указать список, объект внутри и один атрибут объекта?
class test:
def __init__(self, name):
self.name = name
list = []
list.append(test('name1'))
list.append(test('name2'))
Dict = {
list[0].name : value
}
'list[0].name' выглядит ужасно и неправильно, но я не уверен, как правильно ссылаться на атрибут имени объекта по индексу [0] в списке, я хочу, чтобы этот ключ в словаре был 'name1'
Да. Да, это способ сделать это. Есть ли у вас какие-либо проблемы с этим кодом, кроме субъективного «выглядит ужасно»?
Приведенный выше код никогда не сталкивался с проблемой, я просто написал произвольный код, чтобы попытаться походить на мою проблему (мой исходный код был тяжелым и длинным в комментариях). Теперь я понимаю, что это затруднило понимание моей проблемы. Исходное сообщение об ошибке сообщало мне, что index[1] находится вне допустимого диапазона (когда len(list) == 3), потому что list[0].name было неверным.






Это работает для вас?
object_list = []
object_list.append(test('name1'))
object_list.append(test('name2'))
Dict = {obj.name: "" for obj in object_list}
Это заполнит пустой словарь ключами в качестве атрибута имени из ваших объектов и значением в виде пустой строки, вы можете установить его позже в соответствии с вашими требованиями.
Спасибо, это сработало отлично. Я понимаю, что то, как я задал вопрос с произвольным кодом, затруднило понимание моей проблемы, поэтому спасибо за помощь!
Не используйте list в качестве имени переменной, это затеняет встроенный список. Также я не вижу обходного пути, если вы просто хотите сослаться на один объект внутри списка.