Как отсортировать этот список в Python?

Обновление (благодарят комментаторам): делегируйте средства immuntability, что клонирование ничего не достигает по присвоению.

, Когда каждый пишет:

myDelegate += AHandler

абсолютно новый экземпляр делегата создан и присвоен myDelegate.

Поэтому код ниже работал бы точно то же без вызова Клона.

<час>

MulticastDelegate (базовый тип) имеет метод Клона.

, Чтобы смочь добраться до базового делегата Вы, возможно, должны были бы избежать обычного помощника, которого генерирует ключевое слово события, и справьтесь, вещи непосредственно (пользовательский добавляют и удаляют средства доступа).

Для показа этого:

    class Program {
        public delegate void MyDelegate(string name);

        public event MyDelegate EventOne;

        public void HandlerOne(string name) {
            Console.WriteLine("This is handler one: {0}", name);
        }
        public void HandlerTwo(string name) {
            Console.WriteLine("This is handler two: {0}", name);
        }
        public void HandlerThree(string name) {
            Console.WriteLine("This is handler three: {0}", name);
        }

        public void Run() {
            EventOne += HandlerOne;
            EventOne += HandlerTwo;
            Console.WriteLine("Before clone");
            EventOne("EventOne");

            MyDelegate eventTwo = (MyDelegate)EventOne.Clone();
            MyDelegate eventTwo = EventOne;
            Console.WriteLine("After clonecopy");
            EventOne("EventOne");
            eventTwo("eventTwo");

            Console.WriteLine("Change event one to show it is different");
            EventOne += HandlerThree;
            EventOne("EventOne");
            eventTwo("eventTwo");
        }

        static void Main(string[] args) {
            (new Program()).Run();
        }
    }
5
задан TIMEX 10 October 2009 в 11:37
поделиться

1 ответ

Примерно так:

from operator import itemgetter
l = sorted(l, key=itemgetter('time'), reverse=True)

Или:

l = sorted(l, key=lambda a: a['time'], reverse=True)

вывод:

[{'time': 66}, {'time': 33}, {'time': 11}]

Если вы не хотите сохранять исходный порядок, вы можете использовать your_list.sort который изменяет исходный список вместо создания копии типа sorted (your_list)

l.sort(key=lambda a: a['time'], reverse=True)
27
ответ дан 18 December 2019 в 06:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: