python中有两种列表,分别用()和[]表示:
例如:
letter = ('a','b','c') letter = ['a','b','c']
用小括号表示的列表初始化后不允许修改,而中中括号生成的列表可以修改。
例子:列表中的列表
movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91, ["Graham Chapman", ["Michael Palin", "John Cleese","Terry Gilliam", "Eric Idle", "Terry Jones"]]]
上面的movies列表中有两个子列表,要求打印出所有数据,子列表前打印出一个制表符,以示区别
代码如下:代码中使用了一个递归,使用isinstance判断数据类型,由于print默认是打印结果后,再打印一个换行,这里使用end改变print的默认行为,level表示子列表的层数。
def print_movielist(a_list,level): for each_movie in a_list: if isinstance(each_movie, list): print_movielist(each_movie,level +1) else: for i in range(level): print(" ",end='') print(each_movie) print_movielist(movies,0)
执行以上代码后,打印结果如下:
The Holy Grail 1975 Terry Jones & Terry Gilliam 91 Graham Chapman Michael Palin John Cleese Terry Gilliam Eric Idle Terry Jones
可以看到子列表前面都打印出了制表符以示区别。