Я добрая новичок в python. Я читал много, и теперь я хочу решать проблемы. Я пытаюсь решить каждое решение, которое я могу использовать на DailyProgrammer (reddit).Сортировка списка кортежей происходит неправильно
Во всяком случае, у меня проблема. Я пытаюсь сортировать список кортежей после второго значения. И это прекрасно работает, за исключением одного. Одно из значений, которое должно быть первым в списке, заканчивается последним.
class UserTime(object):
def __init__(self, user, time):
self.user = user
self.time = time
def __repr__(self):
return '{}: {}'.format(self.user,
self.time)
user_time_list = [
UserTime('UserA', '41.04'),
UserTime('UserB', '7.06'),
UserTime('UserC', '20.63'),
UserTime('UserD', '54.28'),
UserTime('UserE', '12.59'),
UserTime('UserF', '31.17'),
UserTime('UserG', '63.047') ]
print(user_time_list)
print
print(sorted(user_time_list, key=lambda user: user.time))
Output:
[UserA: 41.04, UserB: 7.06, UserC: 20.63, UserD: 54.28, UserE: 12.59, UserF: 31.17, UserG: 63.047]
[UserE: 12.59, UserC: 20.63, UserF: 31.17, UserA: 41.04, UserD: 54.28, UserG: 63.047, UserB: 7.06]
Я пробовал каждую технику в Интернете. Поиск в Google. Даже функции gettattribute. Я также попытался сделать это решение, не делая класс и просто составляя простой список кортежей. Такая же проблема ... UserB заканчивается последним. И это неправильно, потому что он явно победитель;)
Ой блин. Такое простое решение. Большое спасибо :) –
Нет проблем, и добро пожаловать в Stack Overflow, кстати. Вы можете пометить ответ как «это решило мою проблему», щелкнув галочку слева. –
Ха-ха спасибо. С тех пор я буду держать вас в секрете. Особенно, когда я перехожу к средним и трудным проблемам на Dailyprogrammer. ;) –