王阳新世界 2022-04-14 02:09 采纳率: 100%
浏览 81
已结题

python 元组嵌套元组处理问题

A = ((a , 0.0 , 200 , 1.26 , text_b), ((a , 0.0 , 100, 2.32, text_b), (a , 0.0 , 200, 2.32, text_b)))
B = ((a , 0.0 , 200, 2.27, text_b), (a , 0.0 , 200, 2.05, text_b))
C = ((a , 0.0 , 200, 1.35, text_b), ((a , 0.0 , 150, 1.8, text_b), (a , 0.0 , 200, 1.8, text_b)))
D = ((a , 0.0 , 200, 2.27, text_b), (a , 0.0 , 200, 1.35, text_b), (a , 0.0 , 200, 2.05, text_b))
E = ((a , 0.0 , 200, 2.27, text_b), (a , 0.0 , 200, 1.35, text_b), ((a , 0.0 , 150, 1.8, text_b), (a , 0.0 , 200, 1.8, text_b)))

元组中包含元组,数量不确定,层数只有两层,怎么能优雅的把元组中所有的那个小数(位置固定的)取出来?
前面问过一次,元组里只有两个值的时候已经完美解决(见另一个问题)。现在又增加了元素求赐教。

  • 写回答

1条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2022-04-14 06:20
    关注

    把嵌套元组转成一维列表,再取元素

    def trans(lst):
        res = []
        for i in lst:
            if isinstance(i, tuple):
                res.extend(trans(i))
            else:
                res.append(i)
        return res
    
    trans(A)
    [5, 0.0, 200, 1.26, 'abc', 5, 0.0, 100, 2.32, 'abc', 5, 0.0, 200, 2.32, 'abc']
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 已采纳回答 4月16日
  • 创建了问题 4月14日