Рубрики
Без рубрики

Как проверить, находится ли список вложены в Python?

Резюме: Один из следующих методов может быть использован для проверки того, является ли списком пустым: – Метод 1: Использование IsinStance () с любым способом 2: Использование методов IsinStance () и Len () внутри задачи LOOP: Учитывая список ; Как проверить, если он вложен или нет? Учитывая, что у вас есть список такого, как он вложен в интервале … Как проверить, будет ли список вложены в Python? Читать далее “

Автор оригинала: Shubham Sayon.

Резюме: Один из следующих методов может быть использован для проверки, если список пуст: –

  • Метод 1: Использование Isinstance () С любой()
  • Метод 2: Использование методов IsinStance () и Len () внутри цикла

Проблема: Учитывая список; Как проверить, если он вложен или нет?

Учитывая, что у вас есть список так, что он вложен в то время, когда иногда он не вложен. Исходя из того, будет ли он вложен или не продолжение потока вашего программа будет другим. Например, вы кормите список в dataframe Отказ Код для этого отличается в зависимости от того, является ли список плоским или вложенным. Сравнивая вложенный список дает различную структуру к данным. Таким образом, вам нужно поддерживать структуру. Итак, как бы вы могли отличить и распознать вложенный список из сплющенного списка (не вложенный список)?

Пример:

[a,b,c] # Output: --> False
[[1,2,3],[4,5,6]] # Output --> True

В этой статье давайте быстро обсудим методы, которые можно использовать для проверки, если данный список вложен или нет. Итак, без дальнейшей задержки давайте погрузимся в решения.

Способ 1: Использование IsinStance () с любым ()

Самое простое решение нашей проблемы состоит в том, чтобы использовать Isinstance () Метод и выражение генератора внутри любой () функция. Перед погружением в решение, давайте понять использование Isinstance () и любой () Методы, которые помогут нам проверить список, если оно вложено или нет.

Isinstance это встроенный метод в Python, который возвращает Правда Когда указанный объект является экземпляром указанного типа, в противном случае он возвращает Ложь Отказ

Синтаксис:

Пример:

a = isinstance(25, int)
print(a)

Выход:

True

любой () это встроенная функция, которая возвращает Правда Если какой-либо элемент в итоге это Правда иначе он возвращает Ложь Отказ

Синтаксис:

любой (итеративный)

Пример:

li = [0, 10, 100, 1000]
x = any(li) # Returns True because the first item is True
print(x)

Выход:

True

Теперь, когда мы знаем использование каждой функции, давайте посмотрим на решение нашей проблемы. Пожалуйста, следуйте указанному ниже, которое демонстрирует решение.

Решение

li_1 = [1, 2, 3]  # flat list
li_2 = [[1, 2, 3], [4, 5, 6]]  # nested list
# Testing for nested list
li_1_output = any(isinstance(i, list) for i in li_1)
li_2_output = any(isinstance(i, list) for i in li_2)
# Printing output
print("Is li_1 Nested?", li_1_output)
print("IS li_2 Nested?", li_2_output)

Выход:

Is li_1 Nested? False
IS li_2 Nested? True

Объяснение

В приведенном выше Кодекс любой () Способ позволяет нам проверить каждое появление списка, пока Isinstance () Способ проверки Если каждый экземпляр элемента внутри списка представляет собой сам список или нет. Поэтому в первом случае выходной выход Ложь Поскольку Python не находит никакого возникновения другого списка в … li_1 В то время как во втором случае он находит пару списков в родительском списке li_2 И это возвращает Правда Отказ

Метод 2: Использование методов IsinStance () и Len () внутри цикла

Еще одна работа для нашей проблемы состоит в том, чтобы использовать переменную счетчика, которая подсчитывает количество элементов в списке и сравнить его с фактической длиной списка. Если длина списка равна количеству элементов в списке, то это не вложенный список, в противном случае это вложенный список. Давайте посмотрим на программу, приведенную ниже, которая демонстрирует эту концепцию. (Пожалуйста, следуйте инструкциям вместе с кодом для лучшего понимания.)

li_1 = [1, 2, 3]  # flat list
li_2 = [[1, 2, 3], [4, 5, 6]]  # nested list


# function to evaluate if the list is nested or not
def count(l):
    flag = 0  # counter variable to keep count of the number of elements in the list
    # iterate through the elements of the list
    for item in l:
        # check if the item is a list (iterable) or not
        if isinstance(item, list):
            flag = flag + len(item)
        else:
            flag = flag + 1
    return flag


x = count(li_1)
print("Is li_1 Nested? ", bool(x != len(li_1)))
y = count(li_2)
print("Is li_2 Nested? ", bool(len(li_2) != y))

Выход:

Is li_1 Nested?  False
Is li_2 Nested?  True

Молптонический путь

Еще один интересный подход может быть преобразовать данный список в массив, используя Numpy Library Отказ Кроме того, если вы работаете с наборами набора данных, то вполне возможно, что вы имеете дело с массивами вместо списков, что делает его еще более разумным для обсуждения Numpythonic способ приближения к нашей проблеме. При работе с массивами наша задача становится чрезвычайно легкой, потому что все, что нам нужно сделать сейчас, – это проверить, является ли данный массив одномерный множество.

#Note: NDIM Атрибут позволяет нам найти размерность массива и Размер () Способ позволяет нам найти количество элементов массива вдоль заданной оси.

Давайте посмотрим на следующую программу, которая поможет нам понять, как легко мы можем вывести, если данный список вложен или нет, преобразовав его в массив.

import numpy as np

li_1 = [[1, 2, 3, 4], [5, 6, 7, 8]]
li_2 = [1, 2, 3, 4, 5]
arr_1 = np.array(li_1)
arr_2 = np.array(li_2)
print("Is arr_1 nested? ", bool(arr_1.ndim > 1))
print("Is arr_2 nested? ", bool(arr_2.ndim > 1))

Выход:

Is arr_1 nested?  True
Is arr_2 nested?  False

Редактировать: Если вы хотите узнать Numpy на основе обучения на основе головоломки, вы можете быть очарованы, чтобы посмотреть эту удивительную книгу, опубликованную Крис Кто помогает вам учиться с помощью головоломок в этой книге.

Вы хотите стать Numpy Master? Проверьте нашу интерактивную книгу головоломки Coffe Break Numpy И повысить свои навыки науки о данных! (Ссылка Amazon открывается на новой вкладке.)

Заключение

Я надеюсь, что методы, обсуждаемые в этой статье, помогли вам узнать некоторые очень основные, но очень важные концепции, которые можно использовать для проверки, если список вложена или нет. Основные концепции, обсуждаемые в этой статье, были:

  • Использование Isinstance () и любой () Методы для проверки, если данный список вложен? Мы также обсудили каждый метод вкратце до достижения окончательного решения.
  • Использование Isinstance () И Лен () Методы внутри для петли для проверки, если данный список вложен?
  • Используя numpy Библиотека для проверки, если данный список вложен?

С этим мы дойдете до конца этой статьи; Пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: