"null"처리 방법에 대한 내 질문에 대답하지 않았습니다. 귀하가 None
이라는 값을 가정한다고 가정합니다. 다음은 일 수 있습니다.은 올바르게 처리합니다.
다른 답변에서 주석의 "색인에 null 값이있는 obj가 필요합니다."라고 말했습니까? 그렇지 않으면 두 번째 목록에서 요소를 삽입 할 때 원래 순서를 그대로 유지합니다. 어떤 순서로도 될 수 있습니다 ... 그리고 그것은 몹시 느리게 움직이는 것처럼 보이지 않습니다.
import datetime
class Object(object):
def __init__(self, date_string=None):
self.date = (date_string if date_string is None else
datetime.datetime.strptime(date_string, "%Y%m%d"))
def __repr__(self):
return '{}({!r})'.format(self.__class__.__name__,
self.date.strftime("%Y%m%d") if self.date
else None)
obj1 = Object('20171001')
obj2 = Object('20171002')
obj3 = Object(None)
obj4 = Object('20171004')
obj5 = Object('20171005')
obj6 = Object('20171006')
obj7 = Object('20171007')
obj8 = Object('20171008')
obj9 = Object('20171009')
l1 = [obj1, obj2, obj3, obj4, obj5]
l2 = [obj9, obj6, obj7, obj8]
print('Before:')
print(l1)
print(l2)
for elem2 in l2:
for i, elem1 in enumerate(l1):
if elem1.date and elem2.date < elem1.date:
l1.insert(i, elem2)
break
else:
l1.append(elem2)
print('After:')
print(l1)
출력 :
Before: [Object('20171001'), Object('20171002'), Object(None), Object('20171004'), Object('20171005')] [Object('20171009'), Object('20171006'), Object('20171007'), Object('20171008')]
After: [Object('20171001'), Object('20171002'), Object(None), Object('20171004'), Object('20171005'), Object('20171006'), Object('20171007'), Object('20171008'), Object('20171009')]
`
오류가 있습니까? 어떤 부분이 '작동하지 않습니까?' – brddawg
결과가 표시되는 템플리트가 계속로드되고 목록이 표시되지 않습니다. – rahma
'없음'날짜가있는 객체를 삽입하고 순서를 유지하는 것과 관련하여 어떻게 처리 하시겠습니까? – martineau