2011-03-02 6 views
4

파이썬 목록에서 고유 한 날짜 모음을 만들려고합니다.파이썬 목록의 고유 항목

컬렉션에 날짜가없는 경우 컬렉션에만 날짜를 추가하십시오.

timestamps = [] 

timestamps = [ 
    '2011-02-22', '2011-02-05', '2011-02-04', '2010-12-14', '2010-12-13', 
    '2010-12-12', '2010-12-11', '2010-12-07', '2010-12-02', '2010-11-30', 
    '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16'] 

date = "2010-11-22" 
if date not in timestamps: 
    timestamps.append(date) 

목록을 어떻게 분류합니까?

답변

14

.

date = "2010-11-22" 
timestamps = set(['2011-02-22', '2011-02-05', '2011-02-04', '2010-12-14', '2010-12-13', '2010-12-12', '2010-12-11', '2010-12-07', '2010-12-02', '2010-11-30', '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16']) 
#then you can just update it like so 
timestamps.update(['2010-11-16']) #if its in there it does nothing 
timestamps.update(['2010-12-30']) # it does add it 
2

이 코드는 아무 효과가 없습니다. 동일한 변수를 두 번 참조하고 있습니다 (timestamps).

unique_timestamps= [] 

timestamps = ['2011-02-22', '2011-02-05', '2011-02-04', '2010-12-14', '2010-12-13', '2010-12-12', '2010-12-11', '2010-12-07', '2010-12-02', '2010-11-30', '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16'] 

date="2010-11-22" 
if(date not in timestamps): 
    unique_timestamps.append(date) 
1

당신의 상태가 올 것 같다 :

그래서 당신은 두 개의 별도의 목록을해야 할 것입니다. 날짜 순서에 신경 쓰지 않는다면 목록 대신 집합을 사용하는 것이 더 쉽습니다. 이 경우 어떤 if이 필요하지 않을 : 당신은 이것에 대한 설정을 사용할 수 있습니다

timestamps = set(['2011-02-22', '2011-02-05', '2011-02-04', '2010-12-14', 
        '2010-12-13', '2010-12-12', '2010-12-11', '2010-12-07', 
        '2010-12-02', '2010-11-30', '2010-11-26', '2010-11-23', 
        '2010-11-22', '2010-11-16']) 
timesteps.add("2010-11-22")