@hey_ho

Как со списка объектов в Python 3 удалить повторяющиеся значения?

допустим есть список имен
nameslist = ['Bill', 'Felix', 'Kacy', ' Bill', 'John', 'Felix']
как с помощью цикла удалить все имена Билл, при условии, что нам не известно, сколько билов есть в списке
  • Вопрос задан
  • 3657 просмотров
Решения вопроса 1
Создать словарь string->int, где ключ - элемент из списка, а значение - количество элементов. На основе него создать новый список, выбрав ключи с единичным значением.

UPD: Andrey Druzhaev можно
from collections import Counter

names = ["a", "b", "c", "d", "a", "d", "d"]

print(list([k for k, v in Counter(names).items() if v == 1]))


UPD: Andrey Druzhaev это уже глупый вопрос, т.к. это обычная фильтрация.
Можно так.
filter(lambda s: s != "Bill", namelist)
Или так
[x for x in namelist if x != "Bill"]
В Python 3 можно даже так:
filter('Bill'.__ne__, nameslist)

И ещё способ
while "Bill" in namelist: namelist.remove("Bill")

Открывайте любую книгу по питону и читайте. Там всё есть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@borodaturan
Python developer
А что значит "вытащить все имена"? Если хотите узнать кол-во уникальных имен, то самым простым способом будет преобразование списка в множество set(nameslist ). Если необходимо узнать сколько раз встречается конкретное имя, то нужно использовать collections.Counter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы