1. 问题:
如何只使用一次for循环,遍历2层嵌套的列表?
2. 解决方法:
使用yield from语句的递归生成器,解决多层嵌套列表的遍历问题。
- 示例:
from collections.abc import Iterable
list_b = ["hong kong", "bei ji", "shang hai", ["inner", "1"], ["second", "2"]]
def loop_more_level_list(handle_list):
for item in handle_list:
if isinstance(item, Iterable) and not isinstance(item, (str, bytes)):
yield from item
else:
yield item
print("遍历多层列表嵌套的结果是:")
for element in loop_more_level_list(list_b):
print(element)
- 示例结果: