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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2021, 11:14   #1
s_vilka
Новичок
Джуниор
 
Регистрация: 26.01.2018
Сообщений: 1
По умолчанию Найти первые встречающиеся в массиве

Есть массив школьников:
Schoolchilds =
[[Вася,20,м,10А],
[Женя,19,м,11А],
[Женя,19,ж,9Б],
[Вася,20,м,10В],
[Лена,24,ж,11А]]

Мне нужно сравнить строки массива и оставить уникальные.
Сравнивать по Имени и Возрасту.

Должно остаться
Вася,20,м,10А
Женя,19,м,11А
Лена,24,ж,11А

Код:
Schoolchilds= []
Schoolchilds_dict = {}
Schoolchilds_unique = []
 
for schoolchild in Schoolchilds:
    Schoolchilds_dict.setdefault(schoolchild[1], []).append(schoolchild[0])
    if schoolchild[1] not in Schoolchilds_unique:
        Schoolchilds_unique[schoolchild[1]] = [schoolchild[0], schoolchild[1], schoolchild[2], schoolchild[3]]
Schoolchilds_unique = Schoolchilds_unique.values()
Если с extend, список нарушается
Код:
Schoolchilds_unique.extend((schoolchild [0], schoolchild [1], schoolchild [2], schoolchild [3]))
Изображения
Тип файла: jpg Снимок.JPG (10.8 Кб, 17 просмотров)
s_vilka вне форума Ответить с цитированием
Старый 25.03.2021, 07:48   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

Код:
x = [1, 2, 6, 3, 4, 5, 6, 2, 7, 2, 8]
# уникальные данные из массива
list_уник = list(set(x))
print(list_уник, len(list_уник))  # => [1, 2, 3, 4, 5, 6, 7, 8] 8
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.03.2021, 15:14   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
Schoolchilds = [
    ["Вася", 20, "м", "10А"],
    ["Женя", 19, "м", "11А"],
    ["Женя", 19, "ж", "9Б"],
    ["Вася", 20, "м", "10В"],
    ["Лена", 24, "ж", "11А"]
]
Schoolchilds_unique = set()
Schoolchilds_new = []
 
for schoolchild in Schoolchilds:
    t = (schoolchild[0], schoolchild[1])
    if t not in Schoolchilds_unique:
        Schoolchilds_unique.add(t)
        Schoolchilds_new.append(schoolchild)
print(Schoolchilds_new)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Язык C]: В массиве числа образуют неубывающую последовательность. Найти количество различных чисел в массиве. Помогите найти ошибку. Yulia24* Помощь студентам 0 18.10.2016 20:41
Найти первые n членов, их сумму,найти первый член заданной последовательности больше заданного числа L и указать его номер. ВолДим Помощь студентам 1 26.01.2016 18:51
В трехмерном массиве найти элементы, встречающиеся однажды Slap Паскаль, Turbo Pascal, PascalABC.NET 4 18.08.2011 21:58
элементы в массиве, встречающиеся трижды anksunamun Фриланс 7 28.01.2010 21:35
Найти все числа из массива B(n), встречающиеся более чем в одной строке матрицы A(m,n). Alexander89 Паскаль, Turbo Pascal, PascalABC.NET 2 16.10.2008 12:41