Attribute对集合调用.append()以添加列表时出错



我在代码的第6行得到了一个AttributeError

date_set.append(date). 

不明白为什么。有人能解释一下我的错误吗?

dates = [[5, 7], [7, 9], [9,10],[8, 9]]
def answer(dates):
    date_set = set()
    for date in dates:
        if date[0] <= date[1]:    
            date_set.append(date)
    date_total = [date for date in date_set]
    return len(date_total)
date_set.append(date)

set()没有追加()方法

您应该使用set.update()方法或set.add()

由于没有这样的属性,您会得到一个属性错误。单词append的意思是加到末尾,但集合是无序的。要向集合添加内容,请使用.add():

for date in dates:
    if date[0] <= date[1]:
        date_set.add(date)

不过,更简单的方法是使用集合理解:

date_set = {date for date in dates if date[0] <= date[1]}

不过,您甚至不需要创建一个集合。只需这样做:

def answer(dates):
    return sum(1 for date in dates if date[0] <= date[1])