python获取列表内所有元素的快速方法? |
您所在的位置:网站首页 › python取出集合中的元素 › python获取列表内所有元素的快速方法? |
如果只是针对这道题的话,每一个列表中只有两层嵌套,可以直接使用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 |