python里的列表和数组类似但不等同于数组,列表可以存放混合类型的数据,列表里不但能保存数据还能保存列表,接下来讲一下 列表里嵌套列表。
1. 列表里嵌套列表
我们建立一个列表movies包括电影名称,上映时间,导演,时长,主演,配角等。
>>> movies=["红海行动",2018,"林超贤",138,["张译","海清",["张","黄","杜","蒋"]]]
>>> print(movies[4][2][3])
蒋
>>> print(movies)
['红海行动', 2018, '林超贤', 138, ['张译', '海清', ['张', '黄', '杜', '蒋']]]
>>> for each_flick in movies:
print(each_flick)
红海行动
2018
林超贤
138
['张译', '海清', ['张', '黄', '杜', '蒋']] #for 循环只能打印外列表的各个数据项
>>>
2. BIF(built_in function,python 内置函数)
我们需要确定当前处理的列表项本身是不是一个列表,这里需要用到一个python里的BIF:isinstance( )
isinstance(): 允许检查某个特定标识符是否包含某个特定类型的数据。
3. 解开两层嵌套
>>> movies=["红海行动",2018,"林超贤",138,["张译","海清",["张","黄","杜","蒋"]]]
>>> for each_item in movies:
if isinstance(each_item,list): #
for nested_item in each_item:
print(nested_item) #
else:
print(each_item)
红海行动
2018
林超贤
138
张译
海清
['张', '黄', '杜', '蒋']
>>>
4. 解开三层嵌套
>>> movies=["红海行动",2018,"林超贤",138,["张译","海清",["张","黄","杜","蒋"]]
>>> for each_item in movies:
if isinstance(each_item,list):
for nested_item in each_item:
if isinstance(nested_item,list):
for deeper_item in nested_item:
print(deeper_item)
else:
print(nested_item)
else:
print(each_item)
红海行动
2018
林超贤
138
张译
海清
张
黄
杜
蒋
>>>