itertools.groupby
Предполагая, что, как в вашем примере, ваши строки отсортированы, вы можете использовать groupby
с statistics.mean
:
from itertools import groupby
from statistics import mean
grouper = groupby(word_list, key=str.casefold)
res = {k.capitalize(): mean(x[0].isupper() for x in words) for k, words in grouper}
# {'Bus': 0.5, 'Capital': 0.6, 'White': 0}
sorted
+ groupby
В этом случае вы можете отсортировать перед , применяя приведенную выше логику:
word_list = sorted(word_list, key=str.casefold)
Это добавляет сложности алгоритму, если ваш список не отсортирован.
collections.defaultdict
Альтернативой является создание словаря со списками логических значений через collections.defaultdict
, затем используйте statistics.mean
:
[ 112]
Звуковое Средство поиска Файла это свободно
При ударе ярлыка, у Вас есть поле поиска с автоматическим заполнением: сопроводительный текст http://jens-schaller.de/files/images/SonicFileFinder/sonicFileFinderToolWindow.png
Почему изобретают велосипед? DevExpress + Microsoft, занятая для предложения CodeRush Express бесплатно PDC2008, который делает просто это, если я понимаю Вас правильно.
AFAIR я думаю волшебная ключевая комбинация для Перехода в Файл, является Ctrl+Alt+F, и это делает соответствия подстроки также. Я попробовал его, и это работало на меня. Довольно изящный. Вот ссылка на запись в случае, если я провалил на фактическом нажатии клавиши... некоторые действительно хорошие подсказки в ней.
Обновление: Записал сообщение в блоге для тех, кому не хватает времени.
Не забывайте Свист Рабочей области - это свободно для некоммерческого использования. Я не могу жить без него и просто купил лицензию. Это делает много других вещей также...
(источник: workspacewhiz.com)
Visual Studio уже вполне может это сделать; просто перетащите «Edit.GoToFindCombo» на панель инструментов, если его еще нет. (Для активации нажмите Ctrl + D, если это так) и введите «> of s» для всех файлов, начинающихся с буквы «s».
(источник: aaronlerch.com )
GoToFindCombo более мощный, чем этот, хотя вы можете установить псевдонимы "> alias $ aliasHere $ SomeCommand" практически для каждой команды в Visual Studio. Например, чтобы создать псевдоним для поиска в файлах, введите "> alias ff Edit.
DPack действительно превосходит их всех (более того, он БЕСПЛАТНЫЙ).
Ознакомьтесь с сочетаниями клавиш Alt + U и Alt + M (я также рекомендую другие).
Кроме того, я обнаружил, что StudioTools имеет очень впечатляющую функцию GoTo, если вы хотите перейти к определенной точке (элементу типа) в другом файле (действительно очень быстро).
ПРИМЕЧАНИЕ: R # также имеет такую функцию, но IMO она слабее, чем версия DPack.