>>> time_list = ['00:22', '12:25', '14:13', '12:22', '14:25', '00:13']
>>> time_sample = '12:24'
>>> import bisect
# первый аргумент функции должен быть отсортированной последовательностью
>>> time_list.sort()
# индекс искомого значения
>>> time_sample_index = bisect.bisect_left(time_list, '12:24')
>>> my_time = time_list[time_sample_index]
>>> my_time
'12:25'
>>> from datetime import datetime
>>> from dateutil.relativedelta import relativedelta
>>> now = datetime.today()
>>> print(now + relativedelta(years =+ 2000))
4017-02-24 21:11:20.779300
>>> print(now + relativedelta(months =+ 5))
2017-07-24 21:11:20.779300
... как перебрать все комбинации произвольного числа элементов?
>>> import itertools
>>> num = '123'
>>> list(itertools.permutations(num))
[('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'), ('2', '3', '1'), ('3', '1', '2'), ('3', '2', '1')]
>>> letters = ['A', 'B', 'C']
>>> list(itertools.permutations(letters))
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
>>> d = {'coins': {'Feathercoin': {'tag': 'FTC', 'algorithm': 'NeoScrypt', 'block_time': '62.0'}}}
>>> for i in d['coins']:
print('Coins - ', i, ': ', 'Tag - ', d['coins'][i]['tag'], ': ', 'Algorithm - ', d['coins'][i]['algorithm'])
Coins - Feathercoin : Tag - FTC : Algorithm - NeoScrypt
>>> check = ['X', 'H', 'e', 'V', 'm', 'l', 's', 1, 0, 'y', 'j', 'b', 'g', 'o',
'R', 'U', 'O', 'p', 'p', 8, 'Y', 'B', 'Y', 'O', 'r', 'E', 't', 'I',
'w', 'i', 'v', 'o', 2, 'd', 'Z', 'b', 'S', 'T', 'n', 0]
# приводим к единому регистру
>>> check_low = [i.lower() if isinstance(i, str) else i for i in check]
>>> from collections import Counter
# считаем число вхождений элементов и результат приводим для удобства к списку кортежей
>>> check_pair = Counter(check_low).most_common()
# убираем уникальные
>>> check_pair = [(x, y) for (x, y) in check_pair if y != 1]
# создаем словарь
>>> check_dict = dict(check_pair)
>>> check_dict
{0: 2, 'y': 3, 'b': 3, 'v': 2, 't': 2, 'o': 4, 'p': 2, 'r': 2, 'e': 2, 'i': 2, 's': 2}
>>> rows = [
{'fname': 'Alex', 'lname': 'Ivanov', 'num': 10},
{'fname': 'Vitaly', 'lname': 'Serov', 'num': 40},
{'fname': 'Sergey', 'lname': 'Popov', 'num': 20},
{'fname': 'Stas', 'lname': 'Borodin', 'num': 30}]
>>> def get_biggest_num(data):
biggest_num = max(data, key=lambda x: x['num'])
return biggest_num
>>> result = get_biggest_num(rows)
>>> result
{'fname': 'Vitaly', 'lname': 'Serov', 'num': 40}
>>> d = dict(name='Petr', num=100)
>>> d
{'name': 'Petr', 'num': 100} # 'name' и 'num' - ключи словаря d, 'Petr' и 100 - их значения соответственно
>>> d['num']
100
>>> numbers = [1, 1, 1, 3, 3, 2, 2, 15, 20, 2, 1]
>>> import itertools
>>> total = []
>>> num_len = len(numbers) + 1
>>> for i in range(2, num_len):
num_comb = list(itertools.combinations(numbers, i))
total += num_comb
>>> total = ((i, sum(i)) for i in total if sum(i) > 10)
>>> min_total = min(total, key=lambda x: x[1])
>>> min_total
((1, 3, 3, 2, 2), 11)