首页 > 解决方案 > python在检查变量是单个列表还是列表列表后应用函数

问题描述

我打算将函数应用于变量。我事先不知道传入变量是列表列表还是单个列表。例如

var_name = [a, b, c]
or
var_name = [[a,b,c], [d,e,f], [h,i,j]]

列表列表可以包含尽可能多的列表。如何验证变量是列表还是列表列表。我打算根据类型应用一个函数。我尝试使用 len(var_name) 但列表的长度将是单个列表中的项目数,而对于列表列表,它是列表列表中的列表数。

我想要实现的是:

#function for list
def apply_val(lst):
    do something with single list
#function for list of list
def apply_val2(lst):
    do something with list of lists

var_name = single_list or list_of_lists
if var_name == single list
    apply_val(single_list)
else:
    apply_val(list_of_lists)

如何检查 var_name 是列表还是列表列表?

标签: python

解决方案


list of lists不代表什么,是什么[["foo", "bar"], "baz"]

但是,如果您确定只能拥有“非列表内容列表”和“列表列表”,则只需:

  • 检查列表是否为空
  • 然后,检查第一项的类型
if len(my_list) > 0:
  if isinstance(my_list[0], list):
    # List of list
    pass
  else:
    # Simple list
    pass

推荐阅读