首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重组列表/元组结构

重组列表/元组结构
EN

Stack Overflow用户
提问于 2021-10-08 08:41:04
回答 2查看 64关注 0票数 1

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

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

代码语言:javascript
复制
(('mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'),(16.0, 13.0, 14.0, 13.0, 15.0, 13.0))

我已经做到了这一点,但是我的代码看起来太长了,太笨重了:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-08 08:43:58

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

代码语言:javascript
复制
output = tuple(zip(*temp))
output
代码语言:javascript
复制
(('mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'),
 (16.0, 13.0, 14.0, 13.0, 15.0, 13.0))

正如你在问题要求中提到的那样,把它写成一个函数-

代码语言:javascript
复制
def data_reorganize(temp: tuple):
    return tuple(zip(*temp))
票数 3
EN

Stack Overflow用户

发布于 2021-10-08 08:49:39

您的代码可以改进如下

代码语言:javascript
复制
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中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69492957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档