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

Тема: Ищем решения для searching list in list python

  1. Ищем решения для searching list in list python

    Привет! Столкнулся с задачей типа searching list in list python, и чёснаяз, я весь в смятении ?. У меня есть список списков и нужно найти, содержит ли один из вложенных списков определённый элемент. Какие есть оптимальные и простые способы это сделать? Буду признателен за любой пример кода и пояснения!



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

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

  3. Привет! Чтобы искать элементы внутри вложенных списков, ты можешь использовать list comprehension. Вот пример:
    Программный код:
    nested_list = [[12], [34], [5, [67]]]
    search_element 4
    in_list 
    any(search_element in sublist for sublist in nested_list)
    print(
    in_list)  # True 
    Надеюсь, что это поможет!

  4. Цитата Сообщение от ivleva
    Привет! Чтобы искать элементы внутри вложенных списков, ты можешь использовать list comprehension. Вот пример:
    Программный код:
    nested_list = [[12], [34], [5, [67]]]
    search_element 4
    in_list 
    any(search_element in sublist for sublist in nested_list)
    print(
    in_list)  # True 
    Надеюсь, что это поможет!
    Я пользуюсь такой же темой, реально круто работает. Пацаны на работе юзают другой способ, но этот вообще флексит.

  5. Можешь заюзать рекурсию, если у тебя вложенность может быть более чем один уровень:
    Программный код:
    def search_in_nested_list(nested_listelement):
    for 
    item in nested_list:
    if 
    isinstance(item, list):
    if 
    search_in_nested_list(itemelement):
    return 
    True
    elif item 
    == element:
    return 
    True
    return False

    nested_list 
    = [[12], [34], [5, [67]]]
    search_element 6
    print(search_in_nested_list(nested_listsearch_element))  # True 
    Может быть чутка сложнее, но зато гибко и круто!

  6. Цитата Сообщение от Юлька
    Можешь заюзать рекурсию, если у тебя вложенность может быть более чем один уровень:
    Программный код:
    def search_in_nested_list(nested_listelement):
    for 
    item in nested_list:
    if 
    isinstance(item, list):
    if 
    search_in_nested_list(itemelement):
    return 
    True
    elif item 
    == element:
    return 
    True
    return False

    nested_list 
    = [[12], [34], [5, [67]]]
    search_element 6
    print(search_in_nested_list(nested_listsearch_element))  # True 
    Может быть чутка сложнее, но зато гибко и круто!
    Йоу, рекурсия — это мощь, но главное не путаться и не напороться на stack overflow. Но для глубоких вложенностей — топчик!

  7. Как вариант, можно написать свою функцию через itertools.chain, чтобы получать плоский список и уже в нём искать:
    Программный код:
    from itertools import chain

    nested_list 
    = [[12], [34], [5, [67]]]
    search_element 7

    flat_list 
    = list(chain.from_iterable(nested_list))
    in_list search_element in flat_list
    print(in_list)  # False 
    Удобно и элегантно!

  8. Цитата Сообщение от MagicSwordsman
    Как вариант, можно написать свою функцию через itertools.chain, чтобы получать плоский список и уже в нём искать:
    Программный код:
    from itertools import chain

    nested_list 
    = [[12], [34], [5, [67]]]
    search_element 7

    flat_list 
    = list(chain.from_iterable(nested_list))
    in_list search_element in flat_list
    print(in_list)  # False 
    Удобно и элегантно!
    Этот способ для простых структураций норм, но для глубокой вложенности не зайдёт, мне кажется.

  9. Есть ещё варик: превращать списки в строки и искать через str.count или другой метод. Например:
    Программный код:
    nested_list = [[12], [34], [5, [67]]]
    search_element '6'

    flat_string ' '.join(map(strnested_list))
    in_list flat_string.count(search_element) > 0
    print(in_list)  # True 
    Это немного хак, конечно, но иногда спасает

  10. Цитата Сообщение от Алиса Сергеевна
    Есть ещё варик: превращать списки в строки и искать через str.count или другой метод. Например:
    Программный код:
    nested_list = [[12], [34], [5, [67]]]
    search_element '6'

    flat_string ' '.join(map(strnested_list))
    in_list flat_string.count(search_element) > 0
    print(in_list)  # True 
    Это немного хак, конечно, но иногда спасает
    Хакерский подход! Но осторожно с ковертировками в строки, могут подкрасться неожиданные баги, особенно с числами и пробелами.

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