Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как работать с unique lists in list python?

  1. Как работать с unique lists in list python?

    Ребята, подскажите, как в Python можно получить уникальные списки внутри другого списка? У меня есть такой список списков, и мне нужно убрать все дубликаты. И вообще, как это более грамотно сделать, ведь есть разные варианты (через множество, списки, циклы)? Интересно, какой метод оптимальнее по скорости и читаемости кода. Ну и если есть примеры, было бы прям огонь!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Ты можешь использовать set для получения уникальных списков внутри списка. Нужно просто сконвертировать каждый внутренний список в tuple, так как списки внутри set не сохранятся из-за их изменяемости. Вот пример кода:

    Программный код:

    def unique_lists
    (lists):

        
    seen set()

        
    unique = []

        for 
    lst in lists:

            
    tuple_lst tuple(lst)

            if 
    tuple_lst not in seen:

                
    unique.append(lst)

                
    seen.add(tuple_lst)

        return 
    unique



    lists 
    = [[12], [23], [12], [45]]

    print(
    unique_lists(lists))  # Output: [[1, 2], [2, 3], [4, 5]] 
    Это должно помочь тебе разобраться!

  4. Цитата Сообщение от Вика
    Привет! Ты можешь использовать set для получения уникальных списков внутри списка. Нужно просто сконвертировать каждый внутренний список в tuple, так как списки внутри set не сохранятся из-за их изменяемости. Вот пример кода:

    Программный код:

    def unique_lists
    (lists):

        
    seen set()

        
    unique = []

        for 
    lst in lists:

            
    tuple_lst tuple(lst)

            if 
    tuple_lst not in seen:

                
    unique.append(lst)

                
    seen.add(tuple_lst)

        return 
    unique



    lists 
    = [[12], [23], [12], [45]]

    print(
    unique_lists(lists))  # Output: [[1, 2], [2, 3], [4, 5]] 
    Это должно помочь тебе разобраться!
    Неплохой примерчик! Конвертация в tuple - хороший ход, хотя можно попытаться оптимизировать.

  5. Ты можешь попробовать использовать список сложных списков из стандартной библиотеки itertools. Вот как это можно сделать:

    Программный код:

    from itertools import groupby

    lists 
    = [[12], [23], [12], [45]]

    unique = [list(k) for k_ in groupby(sorted(lists))]

    print(
    unique)  # Output: [[1, 2], [2, 3], [4, 5]] 
    Надеюсь, это тебе поможет!

  6. Цитата Сообщение от Симфония
    Ты можешь попробовать использовать список сложных списков из стандартной библиотеки itertools. Вот как это можно сделать:

    Программный код:

    from itertools import groupby

    lists 
    = [[12], [23], [12], [45]]

    unique = [list(k) for k_ in groupby(sorted(lists))]

    print(
    unique)  # Output: [[1, 2], [2, 3], [4, 5]] 
    Надеюсь, это тебе поможет!
    Чётка идея с itertools и groupby, но чёт сложновато. Хотя работает норм!

  7. Чувак, есть ещё подход через defaultdict:

    Программный код:

    from collections import defaultdict

    lists 
    = [[12], [23], [12], [45]]

    unique = list(dict.fromkeys([tuple(x) for x in lists]))

    print([list(
    x) for x in unique])  # Output: [[1, 2], [2, 3], [4, 5]] 
    Вроде норм работает и не сильно усложняет жизнь.

  8. Цитата Сообщение от BlackWidow
    Чувак, есть ещё подход через defaultdict:

    Программный код:

    from collections import defaultdict

    lists 
    = [[12], [23], [12], [45]]

    unique = list(dict.fromkeys([tuple(x) for x in lists]))

    print([list(
    x) for x in unique])  # Output: [[1, 2], [2, 3], [4, 5]] 
    Вроде норм работает и не сильно усложняет жизнь.
    defaultdict и dict.fromkeys вместе? Интересный подход, но много конвертаций.

  9. Можно и через простые циклы, если надо:

    Программный код:

    lists 
    = [[12], [23], [12], [45]]

    seen = []

    unique = []

    for 
    lst in lists:

        if 
    lst not in seen

            
    unique.append(lst)

            
    seen.append(lst)

    print(
    unique)  # Output: [[1, 2], [2, 3], [4, 5]] 
    Это проще для начала, хотя и не самый быстрый вариант.

  10. Цитата Сообщение от BinaryMage77
    Можно и через простые циклы, если надо:

    Программный код:

    lists 
    = [[12], [23], [12], [45]]

    seen = []

    unique = []

    for 
    lst in lists:

        if 
    lst not in seen

            
    unique.append(lst)

            
    seen.append(lst)

    print(
    unique)  # Output: [[1, 2], [2, 3], [4, 5]] 
    Это проще для начала, хотя и не самый быстрый вариант.
    Ну вот это прям для новичка, зато понятно. Не быстренько, но код чистый.

Страница 1 из 2 12 ПоследняяПоследняя