В этом случае вы можете игнорировать все элементы, которые имеют ''
в качестве даты, и просто сравнить остальные из них.Если у элемента более поздняя дата, чем у другого, вставьте его прямо перед другим элементом и полностью удалите его из прежней позиции.На каждом шагу вы должны проверять, отсортирован ли список и если он есть, то сломайте.Код ниже демонстрирует эту концепцию:
import time
# Print list.
def printList(inList):
for elem in inList:
print(elem[0] + ' ' + elem[1])
print()
# Check if list is sorted.
def isSorted(inList):
length = len(inList)
for i in range(length-1):
if inList[i][1] != '' and inList[i+1][1] != '':
date1 = time.strptime(inList[i][1], '%m-%d %H:%M:%S')
date2 = time.strptime(inList[i+1][1], '%m-%d %H:%M:%S')
if date1 > date2:
return False
return True
# Sort list.
def sortList(inList):
length = len(inList)
for i in range(length):
if inList[i][1] == '':
continue
for j in range(length-1,0,-1):
if inList[j][1] == '':
continue
if i != j:
date1 = time.strptime(inList[i][1], '%m-%d %H:%M:%S')
date2 = time.strptime(inList[j][1], '%m-%d %H:%M:%S')
if date2 < date1:
currentElem = inList[j]
inList.remove(inList[j])
inList.insert(i,currentElem)
if isSorted(inList):
break
return inList
inList = [['user1', '04-24 19:01:00'], ['user2', '04-25 06:39:59'], ['user3', ''], ['user4', '04-24 22:11:34'], ['user5', ''], ['user6', ''], ['user7', '04-26 10:27:36'], ['user8', '04-25 06:09:01']]
inList = sortList(inList)
printList(inList)
Вывод:
user1 04-24 19:01:00
user4 04-24 22:11:34
user8 04-25 06:09:01
user2 04-25 06:39:59
user3
user5
user6
user7 04-26 10:27:36