@hey_ho

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

допустим есть список имен
nameslist = ['Bill', 'Felix', 'Kacy', ' Bill', 'John', 'Felix']
как с помощью цикла удалить все имена Билл, при условии, что нам не известно, сколько билов есть в списке
  • Вопрос задан
  • 3666 просмотров
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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