Как вы говорите разницу между списком и списком списков

1

как вы различаете список и список списков в python3? я хотел бы вернуть True, если его список списков и False в противном случае.

list_1 = [1, 2, 3]
list_2 = [[4, 5, 6],[7, 8, 9],[10, 11, 12]]
print(type(list_1))
print(len(list_1))
print(type(list_2)) 
print(len(list_2)) 

это:

<class 'list'>
3
<class 'list'>
3
  • 1
    почему бы не набрать (list_1 [0])?
  • 0
    проверить list_1[0] вместо list_1
Показать ещё 8 комментариев
Теги:

2 ответа

2
Лучший ответ

Проверьте тип первого элемента:

isinstance(the_list[0], list)

то есть:

>>> isinstance(list_1[0], list)
False
>>> isinstance(list_2[0], list)
True

Однако, что вы понимаете под списком списков? Является ли следующий список списков?

[1, [1, 2, 3], 1, 1]

Если это так, то вы можете проверить, есть ли какой-либо из элементов:

any(isinstance(l) for l in the_list)

Как насчет случая, когда все они перечислены? Является ли следующий единственный "список списков"?

[[1, 2], [1, 2]]

Если это так, то вы можете проверить, все ли элементы являются списками:

all(isinstance(l) for l in the_list)

Однако, хотя эти вопросы важны, для вашего примера будет достаточно первого фрагмента.

  • 0
    Обратите внимание, что это безопасно, только если вы знаете, что list_x - это list (или последовательность).
  • 0
    @schwobaseggl Эта информация подразумевается в вопросе - между списком и списком списков . Конечно, если существует возможность того, что список будет пустым (длина 0 ), тогда да, вы можете изменить его на что-то вроде: len(the_list) and isinstance(the_list[0], list) который будет работать из-за Схема and . Или вы можете try...except...
Показать ещё 2 комментария
0

Проверьте, является ли каждый элемент в вашем списке экземпляром list

is_list_of_list = all(isinstance(item, list) for item in your_list)
  • 0
    Я думаю, что он хочет проверить, если это список списков?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню