python获取列表内所有元素的快速方法?

您所在的位置:网站首页 python取出集合中的元素 python获取列表内所有元素的快速方法?

python获取列表内所有元素的快速方法?

2023-01-02 09:46| 来源: 网络整理| 查看: 265

如果只是针对这道题的话,每一个列表中只有两层嵌套,可以直接使用for循环解决:

a = [ [(55736,)], [(55739,)], [(55740,), (55801,)], [(55748,)], [(55783,), (55786,), (55787,), (55788,)], [(55817,), (55821,)], [(55818,)], ] result = [] for lst in a: # 总列表中每一个子列表 for tup in lst: # 子列表中每一个元组 for item in tup: # 元组中每一个元素 result.append(item) # 将元素加到result列表中 print(result)

输出结果:

[55736, 55739, 55740, 55801, 55748, 55783, 55786, 55787, 55788, 55817, 55821, 55818]

但一般来说,如果想要解决任意层次嵌套的此类问题,可以用如下方法:

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))

最终结果:

[55736, 55739, 55740, 55801, 55748, 55783, 55786, 55787, 55788, 55817, 55821, 55818]

希望能帮上忙!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3