Я написал быстрый скрипт, чтобы очистить различные данные о битвах с единоборствами и их связанных шансах.Каков самый Pythonic способ индексирования данных коллекции
Первоначально данные были кортежем, причем первая запись была именем истребителя (строки), а вторая была их коэффициентом (float). Скрипт позже получил доступ к этим данным, и я определил две константы: FIGHTER = 0
и ODDS = 1
, чтобы позднее использовать fight_data[FIGHTER]
или fight_data[ODDS]
.
Поскольку данные неизменяемы, кортеж имел смысл, и, определяя константы, мои рассуждения состояли в том, что мой IDE/Editor мог улавливать опечатки, а не использовать индекс строки для словаря.
FIGHTER = 0
ODDS = 1
fight_data = get_data()
def process_data(fight_data):
do_something(fight_data[FIGHTER])
do_something(fight_data[ODDS])
Каковы другие альтернативы? Я думал о создании класса FightData
, но данные строго являются объектами с двумя небольшими элементами.
class FightData(object):
fighter = None
odds = None
def __init__(self, fighter, odds):
self.fighter = fighter
self.odds = odds
fight_data = get_data()
def process_data(data):
do_something(fight_data.fighter)
do_something(fight_data.odds)
Кроме того, я понял, что я мог бы использовать словарь, и есть fight_data["fighter"]
но кажется, что как некрасиво и ненужно мне.
Какой из этих альтернатив является лучшим?
Это вопрос SO-актуальный или запрос кодового обзора? – J0e3gan
Просьба не запрашивать код, просто вопрос с точки зрения стиля. –
Это будет запрос IMO об обзоре кода. – J0e3gan