Python: ссылка на атрибут объекта в списке по индексу [x]

я делаю словарь а для ключей я пытаюсь использовать атрибут .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'

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

Dani Mesejo 25.12.2020 08:25

Да. Да, это способ сделать это. Есть ли у вас какие-либо проблемы с этим кодом, кроме субъективного «выглядит ужасно»?

deceze 25.12.2020 08:26

Приведенный выше код никогда не сталкивался с проблемой, я просто написал произвольный код, чтобы попытаться походить на мою проблему (мой исходный код был тяжелым и длинным в комментариях). Теперь я понимаю, что это затруднило понимание моей проблемы. Исходное сообщение об ошибке сообщало мне, что index[1] находится вне допустимого диапазона (когда len(list) == 3), потому что list[0].name было неверным.

hughm-01 25.12.2020 08:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
258
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это работает для вас?

object_list = []
object_list.append(test('name1'))
object_list.append(test('name2'))
Dict = {obj.name: "" for obj in object_list}

Это заполнит пустой словарь ключами в качестве атрибута имени из ваших объектов и значением в виде пустой строки, вы можете установить его позже в соответствии с вашими требованиями.

Спасибо, это сработало отлично. Я понимаю, что то, как я задал вопрос с произвольным кодом, затруднило понимание моей проблемы, поэтому спасибо за помощь!

hughm-01 25.12.2020 08:42

Другие вопросы по теме