from collections import Iterable # 导入Iterable类,以便下面判断对象是否可迭代
# 总的计算函数,函数会返回一个列表,包含输入可迭代对象中所有不可迭代对象(按顺序)
def get_item(total: Iterable) -> list:
# 创建用于计算的闭包
def calculate(lst: Iterable): # 传入一个可迭代对象
for item in lst:
# 如果其中元素不可迭代,说明到达嵌套列表底层。将这个元素加到储存最终结果的result列表中,用return结束此次递归
if not isinstance(item, Iterable): # 这里判断元素是否可以迭代
result.append(item)
return
# 如果元素依旧可以迭代,调用递归对这个元素进行计算
else:
calculate(item)
result = [] # 创建储存结果的列表
calculate(total) # 调用闭包计算
return result # 返回最终结果
a = [
[(55736,)],
[(55739,)],
[(55740,), (55801,)],
[(55748,)],
[(55783,), (55786,), (55787,), (55788,)],
[(55817,), (55821,)],
[(55818,)],
]
print(get_item(a))