Python 合并重叠间隔会产生AttributeError

Python 合并重叠间隔会产生AttributeError,python,merge,Python,Merge,给定一组间隔,合并所有重叠的间隔 例如: 给定[1,3]、[2,6]、[8,10]、[15,18] 返回[1,6]、[8,10]、[15,18] 确保返回的间隔已排序 类解决方案: #@param interval,间隔列表 #@返回间隔列表 def合并(自我、间隔): A=间隔 A.sort(key=lambda x:x.start) N=len(A) S=[] 如果是: S.append(A[0]) 对于范围(1,N)内的i: B=A[i] 如果B.start只需实现一个最小的间隔类即可使代

给定一组间隔,合并所有重叠的间隔

例如:

给定
[1,3]、[2,6]、[8,10]、[15,18]

返回
[1,6]、[8,10]、[15,18]

确保返回的间隔已排序

类解决方案:
#@param interval,间隔列表
#@返回间隔列表
def合并(自我、间隔):
A=间隔
A.sort(key=lambda x:x.start)
N=len(A)
S=[]
如果是:
S.append(A[0])
对于范围(1,N)内的i:
B=A[i]

如果B.start只需实现一个最小的
间隔
类即可使代码正确运行:

class Interval:
    def __init__(self, start, end):
        self.start, self.end = start, end
    def __repr__(self):
        return str([self.start, self.end])
或者您也可以使用
namedtuple
获得大致相同的结果:

from collections import namedtuple
Interval = namedtuple('Interval', ('start', 'end'))
并将
X
转换为使用
Interval
s:

X = [Interval(*x) for x in X]

注释是“@param interval,一个间隔列表”,但您正在发送一个列表列表。您正在传递列表,而列表没有
.start
属性。您是否正确阅读了Interviewbit上的问题描述?也许他们正在传递一些不同的东西来表示间隔?
X = [Interval(*x) for x in X]