重新组织列表/元组结构



在一个练习中,我被要求重新组织一个元组。鉴于元组: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

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))

您的代码可以改进如下

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

相关内容

  • 没有找到相关文章

最新更新