Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2020, 21:07   #1
egorxx
 
Регистрация: 18.12.2016
Сообщений: 7
Восклицание Найти Количество повторяющихся элементов в List

Добрый День есть переменная List
Как пример (Не стал писать полный лист)

Необходимо вывести Сколько повторений было в нашем листе каждого элемента исключая значения которые были только один раз.
Например вывод:
[['100 best wines'], ['100 parker points'], ['100 pp weine'], ['1855'], ['1966 whiskey'], ['20 wine'], ['2000 chateau mouton rothschild'], ['2000 chateau mouton rothschild'] , ['2009 chateau pontet canet'], ['2009 chateau pontet canet'], ['2015 giscours margaux'], ['2015 larcis ducasse'], ['2016 chateau pontet canet'], ['2016 château léoville las cases'], ['89 haut brion'], ['99 point'], ['achim becker wein'], ['aiguilhe 2012'], ['aiguilhe 2014'], ['allee des chateaux'], ['2015 larcis ducasse'], ['2015 larcis ducasse'], ['alles wein'], ['alte bordeaux weine'], ['alte weine verkaufen'], ['alteisen ankauf nürnberg']]

2000 chateau mouton rothschild - 2 раза
2015 larcis ducasse - 3 раза .

Все перепробывал и не работает , from collections import Counter тоже - нет

Кто- нибудь может подсказать ?
Изображения
Тип файла: jpg Снимок экрана 2020-01-23 в 19.02.51.jpg (41.4 Кб, 1 просмотров)
egorxx вне форума Ответить с цитированием
Старый 23.01.2020, 22:56   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Вот прикольная штука, которая формирует словарь только из элементов, количество которых больше 1.

Код:
my_dict = {i:my_list.count(i) for i in my_list if my_list.count(i) > 1}
А вот так выглядит результирующий скрипт.
Код:
my_list = ['hello', 'bye', 'bye', 'month', 'day', 'bye', 'stop', 'hello']

my_dict = {i:my_list.count(i) for i in my_list if my_list.count(i) > 1}

for k,v in my_dict.items():
    print(f'{k} - {v}')
Результат:
Код:
hello - 2
bye - 3

Последний раз редактировалось Arkuz; 23.01.2020 в 23:00.
Arkuz вне форума Ответить с цитированием
Старый 23.01.2020, 23:16   #3
egorxx
 
Регистрация: 18.12.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Arkuz Посмотреть сообщение
Вот прикольная штука, которая формирует словарь только из элементов, количество которых больше 1.

Код:
my_dict = {i:my_list.count(i) for i in my_list if my_list.count(i) > 1}
А вот так выглядит результирующий скрипт.
Код:
my_list = ['hello', 'bye', 'bye', 'month', 'day', 'bye', 'stop', 'hello']

my_dict = {i:my_list.count(i) for i in my_list if my_list.count(i) > 1}

for k,v in my_dict.items():
    print(f'{k} - {v}')
Результат:
Код:
hello - 2
bye - 3

Тут идет List из csv типа List = [["hello"], ["helloffd"], и тд ]
Скорее всего нужно убрать скобки отформатировать List что бы получилось так List_2 = ["hello", "helloffd", и тд ]
Но я хз как сделать
Изображения
Тип файла: jpg Снимок экрана 2020-01-23 в 21.18.15.jpg (72.7 Кб, 0 просмотров)
egorxx вне форума Ответить с цитированием
Старый 24.01.2020, 00:44   #4
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Цитата:
Тут идет List из csv типа List = [["hello"], ["helloffd"], и тд ]
Скорее всего нужно убрать скобки отформатировать List что бы получилось так List_2 = ["hello", "helloffd", и тд ]
У меня список строк. У вас список списков. Его достаточно распаковать.

Код:
my_list = [['100 best wines'], ['100 parker points'], ['100 pp weine'], ['1855'], ['1966 whiskey'], ['20 wine'], ['2000 chateau mouton rothschild'], ['2000 chateau mouton rothschild'] , ['2009 chateau pontet canet'], ['2009 chateau pontet canet'], ['2015 giscours margaux'], ['2015 larcis ducasse'], ['2016 chateau pontet canet'], ['2016 château léoville las cases'], ['89 haut brion'], ['99 point'], ['achim becker wein'], ['aiguilhe 2012'], ['aiguilhe 2014'], ['allee des chateaux'], ['2015 larcis ducasse'], ['2015 larcis ducasse'], ['alles wein'], ['alte bordeaux weine'], ['alte weine verkaufen'], ['alteisen ankauf nürnberg']]

unpacked_list = []
for list in my_list:
    for item in list:
        unpacked_list.append(item)

my_dict = {i:unpacked_list.count(i) for i in unpacked_list if unpacked_list.count(i) > 1}

for k,v in my_dict.items():
    print(f'{k} - {v}')
Arkuz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти количество повторяющихся элементов в массиве cheburashkaRF PHP 12 28.08.2015 13:51
Количество повторяющихся элементов в массиве (Язык С) Ковях Н Н Помощь студентам 0 21.01.2013 20:26
Найти количество повторяющихся элементов массива в C maxwel6064 Помощь студентам 7 16.11.2012 19:33
Найти количество повторяющихся элементов. xEk Помощь студентам 3 14.05.2012 23:08
количество повторяющихся элементов в массиве Андрей.12 Помощь студентам 1 28.01.2010 23:57