#python-3.x
#python-3.x
Вопрос:
у меня есть список значений [4, 5, 18, 19, 20, 30, 31]
, и я пытаюсь создать пару, тройку или 4,5.
l = [4, 5, 18, 19, 20, 30, 31]
этот список необходимо преобразовать как p_list
p_list = [(4,5),(18,19,20),(30,31)]
Комментарии:
1. Какие характеристики значений списка определяют, является ли следующее значение частью кортежа? например, похоже, что разница между 5 и 18 является причиной для запуска нового кортежа, а разница между 32 и 34 — нет. Каково минимальное смещение, которое запускает начало нового кортежа?
2. на самом деле этот список содержит даты календаря из бронирования отеля, и каждый кортеж доступен через несколько дней после календаря, а разница между каждым элементом кортежа равна 1, допустим (4,5) 5-4 = 1 и (18,19,20) 19-18 =1 , 20-19=1.
3. Ваш список имеет шаблон, который позволяет группировать по последовательным целым числам. Я не знаю, так ли это для вас. Если это так, вы достигнете ожидаемого результата с
[tuple(g) for g in more_itertools.consecutive_groups(l)]
помощью .4. это работает, чувак.