[英]Python make a list of lists from a list of lists
我该怎么做呢?
以下是我的清单清单
[[0.0, 0.5884873389626358, 0.6396995276767564, 0.7329666273317014, 0.4842313879485761, 1.0], [0.0, 0.3198112142984678, 0.688061628145554, 0.9057703742992778, 0.4510016620800218, 1.0], [0.0, 0.8174664500409363, 0.6534818573661288, 0.7434609459640676, 0.625429283659689, 1.0], [0.0, 0.6671642766717503, 0.019976903098259637, 0.8374816423664811, 0.38608275062838593, 1.0], [0.17795385258743912, 0.32139709168355723, 0.0, 0.016863091072428376, 0.1259237700382603, 1.0], [0.0677184881194031, 1.0, 0.27760511005151, 0.0, 0.9794600361121459]]
我想创建一个新的列表列表,每个新的子列表对应于第一个列表列表中的值位置。
因此,新列表列表中的前两个子列表为:
[[0.0, 0.0, 0.0, 0.0, 0.17795385258743912, 0.0677184881194031], [0.5884873389626358, 0.3198112142984678, 0.8174664500409363, 0.6671642766717503, 0.32139709168355723, 1.0]]
我需要它,所以无论第一个列表有多大,它仍然可以将其计算到新的列表列表中。
对于上下文,im将列表的csv列列表转换为列表的行列表。
要获得新的列表列表,可以对zip
使用另一个列表理解:
x = [list(items) for items in zip(*a)]
print (x)
#[[0.0, 0.0, 0.0, 0.0, 0.17795385258743912, 0.0677184881194031], [0.5884873389626358, 0.3198112142984678, 0.8174664500409363, 0.6671642766717503, 0.32139709168355723, 1.0], [0.6396995276767564, 0.688061628145554, 0.6534818573661288, 0.019976903098259637, 0.0, 0.27760511005151], [0.7329666273317014, 0.9057703742992778, 0.7434609459640676, 0.8374816423664811, 0.016863091072428376, 0.0], [0.4842313879485761, 0.4510016620800218, 0.625429283659689, 0.38608275062838593, 0.1259237700382603, 0.9794600361121459]]
看起来您需要zip
data = [[0.0, 0.5884873389626358, 0.6396995276767564, 0.7329666273317014, 0.4842313879485761, 1.0], [0.0, 0.3198112142984678, 0.688061628145554, 0.9057703742992778, 0.4510016620800218, 1.0], [0.0, 0.8174664500409363, 0.6534818573661288, 0.7434609459640676, 0.625429283659689, 1.0], [0.0, 0.6671642766717503, 0.019976903098259637, 0.8374816423664811, 0.38608275062838593, 1.0], [0.17795385258743912, 0.32139709168355723, 0.0, 0.016863091072428376, 0.1259237700382603, 1.0], [0.0677184881194031, 1.0, 0.27760511005151, 0.0, 0.9794600361121459]]
print(list(zip(*data)))
#or print(list(map(list, zip(*data))))
输出:
(0.0, 0.0, 0.0, 0.0, 0.17795385258743912, 0.0677184881194031),
(0.5884873389626358,
0.3198112142984678,
0.8174664500409363,
0.6671642766717503,
0.32139709168355723,
1.0),
(0.6396995276767564,
0.688061628145554,
0.6534818573661288,
0.019976903098259637,
0.0,
0.27760511005151),
(0.7329666273317014,
0.9057703742992778,
0.7434609459640676,
0.8374816423664811,
0.016863091072428376,
0.0),
(0.4842313879485761,
0.4510016620800218,
0.625429283659689,
0.38608275062838593,
0.1259237700382603,
0.9794600361121459)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.