Как делают меня, большинство efficienty проверяет уникальные элементы в список?

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

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

Что самый эффективный путь состоит в том, чтобы возвратить количество уникальных "кодов" в этом списке? В этом случае, уникальные коды 2, потому что только 2B и 2 А уникальны.

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

5
задан Eli Courtwright 2 April 2010 в 22:44
поделиться

1 ответ

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

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

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

8
ответ дан 14 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

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