Я бы сделал это так: по сути, то, что мы делаем здесь, это разделение этого входного списка на различные чанки, которые мы сохраняем как keyIndex
, и далее мы запускаем второй цикл for, чтобы добавить разницу.из чисел в отдельности, поэтому [6,10]
станет [6,7,8,9]
, чтобы представить разницу 10-6 = 4. Наконец, мы будем использовать метод set()
только для удаления любых дубликатов, поскольку вы сказали, что хотите, чтобы перекрытие учитывалосьтолько один.
myList = ([[1,5], [10, 20], [1, 6], [16,19], [5,11]])
def sumIntervals(inputList):
output = []
for keyIndex in range(len(inputList)):
for keyDifference in range(inputList[keyIndex][0], inputList[keyIndex][1]):
output.append(keyDifference)
output = set(output)
print(len(output))
sumIntervals(myList)