1. 问题:
如何只使用一次for循环,遍历2层嵌套的列表?
2. 解决方法:
使用yield from语句的递归生成器,解决多层嵌套列表的遍历问题。
- 示例:
from collections.abc import Iterablelist_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 itemelse:yield itemprint("遍历多层列表嵌套的结果是:")
for element in loop_more_level_list(list_b):print(element)
- 示例结果: