2016-03-11 4 views
0

У меня есть функция, которая возвращает даты и значения определенных биржевых котировок.Будут ли эти данные некорректно обрабатываться?

def getData(ticker): 
    # logic 
    return dates, values 

dates_list, values_list = getData("TVIX") 

Хотя эти списки дат и значений правильно спарены сейчас (т.е. каждое значение имеет тот же индекс, первоначально установленной даты наблюдения), быстро сортировать по обе вектора будет удалить эту связь. Лучше ли возвращать что-то вроде этого как кортеж, чтобы каждое наблюдение действительно не могло «уйти» от его ценности?

Я имею в виду что-то вроде:

def getData(ticker): 
    # logic 
    ret_list = [] 
    date_value = (d, v) # for a particular observation 
    ret_list.append(date_value) 
    return ret_list 

Запуск этой второй итерации getData даст что-то вроде (данные на самом деле не отражают TVIX значения):

>>> x = getData("TVIX") 
>>> for pair in x: 
     print(pair) 

("2013/01/01", 120) 
("2013/01/02", 121) 
("2013/01/03", 127) 
+2

Да, а затем, когда вам нужно перебрать их, вы можете использовать функцию 'zip'. – dursk

ответ

1

Да это лучше связывать связанные значения, так что, когда эти значения сортируются, они сортируются вместе. И вы можете добиться того, что только путем замены вашего возвращения заявления с

return zip(dates, values) 

Нет необходимости менять внутреннюю логику getData.

Смежные вопросы