# Author:Sooele new_list = ["H1", "H2", 1999,"S",66] for each_list in new_list: print(each_list);
若列表中包含嵌套列表,怎样处理?
笨方法:判断列表中元素是不是列表;并继续使用for来循环打印, 缺点:多个嵌套列表时会使代码过长过重复 难读
new_list = ["H1", "H2", 1999, ["hello", "day"]] for each_list in new_list: if isinstance(each_list, list): for new_each in each_list: print(new_each) else: print(each_list);
简单方法:编写递归函数
def each_list(list_name): for yuansu in list_name: if isinstance(yuansu, list): each_list(yuansu) else: print(yuansu) new_list = ["H1", "H2", 1999, ["hello", "day"], ["one", "two"]] each_list(new_list)
如果想遇到列表就缩进一次怎么办?
增加一个形参呗;
def each_list(list_name, level=0): for yuansu in list_name: if isinstance(yuansu, list): # 判断当前元素是不是列表 each_list(yuansu, level + 1) # 如是,则递归调用,并且标记当前元素是列表 else: for tab in range(level): # 固定次数 print("\t", end='') print(yuansu) new_list = ["H1", "H2", 1999, ["hello", "day", ["one", "two"]]] each_list(new_list)
如果加入一个开启机制,不想加缩进&想加缩进 怎么办;
再次加入一个形参控制
def each_list(list_name, count=False, level=0): # 加入控制形参 count 默认为不开启缩进 for yuansu in list_name: if isinstance(yuansu, list): # 判断当前元素是不是列表 each_list(yuansu, count, level + 1) # 如是,则递归调用,并且标记当前元素是列表 else: if count: # 判断是否开启缩进 for tab in range(level): # 固定次数 print("\t", end='') print(yuansu) else: print(yuansu) new_list = ["H1", "H2", 1999, ["hello", "day", ["one", "two"]]] each_list(new_list)