【问题标题】:Reorganize list/tuple structure重组列表/元组结构
【发布时间】:2021-10-08 08:41:04
【问题描述】:

在一个练习中,我被要求重新组织一个元组。给定元组:temp = ( ("mandag", 16.0), ("tirsdag", 13.0), ("onsdag", 14.0), ("torsdag", 13.0), ("fredag", 15.0), ("lørdag", 13.0), )

我应该编写一个名为data_reorganize 的函数,它在打印时输出以下元组:

(('mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'),(16.0, 13.0, 14.0, 13.0, 15.0, 13.0))

我已经解决了这个问题,但是我的代码似乎太长太粗:

def data_reorganize(a):
    x = []
    y = []
    for i in a:
        x.append(i[1])
    x = tuple(x)
    for i in a:
        y.append(i[0])
    y = tuple(y)
    return y,x

【问题讨论】:

    标签: python python-3.x tuples


    【解决方案1】:

    zip* 解包操作符试试这个。这种方法最好的部分是它是可逆的。在输出上再次使用它来取回初始输入! -

    output = tuple(zip(*temp))
    output
    
    (('mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'),
     (16.0, 13.0, 14.0, 13.0, 15.0, 13.0))
    

    将其编写为您在问题要求中提到的函数 -

    def data_reorganize(temp: tuple):
        return tuple(zip(*temp))
    

    【讨论】:

      【解决方案2】:

      您的代码可能会改进如下

      def data_reorganize(a):
          x = []
          y = []
          for i in a:
              x.append(i[1])
              y.append(i[0])
          return tuple(y), tuple(x)
      

      说明:我将两个单独的 for i in a 集成到单个中,并将转换为所需的数据类型移动到 return 中。

      【讨论】:

        猜你喜欢
        • 2019-10-04
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-21
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        相关资源
        最近更新 更多