2014-02-04 3 views
0

У меня есть список списков с данными, как кредит платит график:Python, получить элемент из списка

[ [pay_number, pay_date, pay_amount], [pay_number, pay_date, pay_amount], e.t.c ] 

как я могу получить следующий pay_date от него?

+0

Я имел в виду следующее pay_date, связанное с текущей датой –

ответ

0

Вам просто нужно пройти по списку:

thelist = [ [pay_number, pay_date, pay_amount], [pay_number, pay_date, pay_amount], ... ] 

for sub_list in thelist: 
    current_pay_date = sub_list[1] 
    # do something with current_pay_date 

Если вы хотите получить доступ к следующим pay_date:

for i in range(len(thelist)): 
    sub_list = thelist[i] 
    current_pay_date = sub_list[1] 
    next_sub_list = thelist[i+1] 
    next_pay_date = next_sub_list[1] 

Надеется, что это было то, что вы искали.

+0

для sub_list в thelist: current_pay_date = sub_list [1] if current_pay_date> datetime.date.today(): return sub_list , что мне нужно. Большое спасибо –

+1

Вместо 'range (len (thelist))', вы можете просто использовать 'enumerate'. –

0

Вы можете использовать функцию min, чтобы получить элемент из списка, который является самым близким к сегодняшнему дню с помощью настраиваемого key функции:

>>> items = [[1, datetime.date(2014, 2, 28), 1], [2, datetime.date(2014, 2, 7), 2], [3, datetime.date(2014, 2, 14), 3]] 
>>> min(items, key=lambda x: x[1] - datetime.date.today()) 
[2, datetime.date(2014, 2, 7), 2] 
+0

>>> items = [[1, datetime.date (2014, 1, 28), 1], [2, datetime.date (2014, 2, 13), 2], [3, datetime.date (2014, 2, 14), 3]] >>> min (items, key = lambda x: x [1] - datetime.date.today()) >>> [1, datetime.date (2014, 1, 28), 1] , но это в прошлом –

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