在一个练习中,我被要求重组一个元组。给定元组: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发布于 2021-10-08 08:43:58
用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))发布于 2021-10-08 08:49:39
您的代码可以改进如下
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中。
https://stackoverflow.com/questions/69492957
复制相似问题