Я просто возвращаюсь к программированию после 20-летнего перерыва. Я думал, что Python выглядит довольно простым и мощным, поэтому я прошел онлайн-курс и немного почитал.
Сейчас я смотрю на несколько простых проектов, чтобы познакомиться с языком. Одной из проблем является понимание объектно-ориентированного программирования, которого не было, когда я в последний раз писал программу.
Мой первый проект состоял в том, чтобы прочитать файл данных, содержащий информацию о портфеле акций, выполнить некоторые расчеты по каждому из них и распечатать отчет. У меня это работает.
Так что теперь я смотрю на что-то более продвинутое, считываю данные и сохраняю их, а затем использую данные для предоставления ответов на интерактивные вопросы. Мой вопрос заключается в том, как хранить данные, чтобы к ним можно было легко получить доступ.
Моей первой мыслью было составить список списков, например,
companies = [ ['AMP', 1000, 2.50], ['ANZ', 2000, 17.00], ['BHP', 500, 54.30] ]
К этому можно легко получить доступ в циклах, но методы доступа не совсем дружелюбны - числа в качестве индексов вместо имен:
companyqty = companies[1][1]
Или для циклов:
for company in companies:
if company[0] == 'BHP':
companyqty = company[1]
Затем я подумал о словаре со значением в виде списка:
companies = {'AMP':[1000, 2.50], 'ANZ':[2000, 17.00], 'BHP':[500, 54.30] }
companyqty = companies['BHP'][0]
Это обеспечивает немедленный доступ к любой данной компании, но по-прежнему привязан к числовым индексам.
Поэтому мне интересно, как структурировать это объектно-ориентированным образом, чтобы иметь возможность хранить список компаний и все связанные данные и иметь удобный доступ к значениям. Все мои идеи до сих пор выглядят как списки или словари, как указано выше.
Или такая проблема не подходит для объектно-ориентированного подхода?
Спасибо