python - 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 是列表还是列表列表?
解决方案
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
推荐阅读
- php - 使用 PHP 时如何正确格式化 JSON
- c# - .Net核心将SqlConnection注入服务
- c - 为什么在矩阵乘法运算期间,用于存储累加和的变量比直接访问结果单元更快?
- java - Spring. Cannot load driver class: org.hsqldb.jdbc.JDBCDriver
- java - 为什么Java replaceAll() 使用正则表达式需要在前面添加“\\”?
- c++ - 指针数组出现问题并尝试调整大小
- python - 将线程与 asyncio 结合使用
- javascript - React Native:设置 React Navigation 的屏幕标题
- r - R Scraping IMDB:处理缺失信息的更好方法?
- mysql - 如何使用容器名称从 linux 物理机/主机操作系统连接为 mysql 主机?