【发布时间】:2012-11-18 01:44:31
【问题描述】:
我使用 numpy 库中的 zip() 函数对元组进行排序,现在我有了一个包含所有元组的列表。从那以后我修改了那个列表,现在我想恢复元组,这样我就可以使用我的数据了。我该怎么做?
【问题讨论】:
我使用 numpy 库中的 zip() 函数对元组进行排序,现在我有了一个包含所有元组的列表。从那以后我修改了那个列表,现在我想恢复元组,这样我就可以使用我的数据了。我该怎么做?
【问题讨论】:
lst1, lst2 = zip(*zipped_list)
应该给你解压后的列表。
*zipped_list 解压缩 zipped_list 对象。然后它将所有元组从 zipped_list 对象传递到 zip,它只是将它们打包回来,就像你传入它们时一样。
如果:
a = [1,2,3]
b = [4,5,6]
然后zipped_list = zip(a,b) 给你:
[(1,4), (2,5), (3,6)]
*zipped_list 还给你
(1,4), (2,5), (3,6)
使用zip(*zipped_list) 压缩它会返回两个集合:
[(1, 2, 3), (4, 5, 6)]
【讨论】:
lambda x: zip(*x)是自逆的。
l1 = [1,2,3], l2 = [4,5,6];如果我打电话给a,b = zip(*zip(l1,l2)),那么a = (1,2,3) != l1 = [1,2,3](因为tuple != list)
a,b = map(list, zip(*zip(l1,l2)))