Как наиболее эффективно проверить уникальные элементы в списке? - PullRequest
5 голосов
/ 03 апреля 2010

допустим, у меня есть список

li = [{'q':'apple','code':'2B'},
      {'q':'orange','code':'2A'},
      {'q':'plum','code':'2A'}]

Какой самый эффективный способ вернуть количество уникальных «кодов» в этом списке? В этом случае уникальные коды равны 2, потому что только 2B и 2A являются уникальными.

Я мог бы поместить все в список и сравнить, но действительно ли это эффективно?

1 Ответ

8 голосов
/ 03 апреля 2010

Вероятно, самый эффективный простой способ - создать набор кодов, который отфильтрует уникальные числа, а затем получит количество элементов в этом наборе:

count = len(set(d["code"] for d in li))

Как всегда, я советую не беспокоиться об эффективности такого рода, если вы не измерили свою производительность и не поняли, что это проблема. Я обычно думаю только о ясности кода при написании такого рода кода, а затем возвращаюсь и ужесточаю его, только если я профилировал и обнаружил, что мне нужно для улучшения производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...