根据条件将元组列表拆分为单独的列表

时间:2021-05-01 09:56:12

标签: python pandas list split tuples

我有一个像这样的元组列表:

a = [(1, 0.0), (1, 1.0), (1, 0.0), (2, 0.36034115138592754), (1, 1.0),
(1, 0.0), (2, 0.0), (3, 0.9999999999999991), (4, 0.0), (5, 0.0), 
(6, -1.0000000000000002), (7, 0.9999999999999999), (8, 1.0000000000000002), (9, 1.0), 
(10, 0.0), (1, 1.0), (1, 0.0)]

每次第一个元素为 1 时,我都想拆分它。 我已经尝试过使用 groupby,但是每次我都需要一个不同的元组列表,因为稍后我必须绘制它并且每个元组都是一个特定的点。 我的预期输出是:

[(1, 0.0)]
[(1, 1.0)]
[(1, 0.0), (2, 0.36034115138592754)]
[(1, 1.0)]
[(1, 0.0), (2, 0.0), (3, 0.9999999999999991), (4, 0.0), (5, 0.0), 
(6, -1.0000000000000002), (7, 0.9999999999999999), (8, 1.0000000000000002), (9, 1.0), (10, 0.0)]
[(1, 1.0)]
[(1, 0.0)]

1 个答案:

答案 0 :(得分:1)

我在这里发布@Mustafa Aydin的解决方案,以便其他用户尽快找到解决方案。

inds, = np.nonzero(np.array(a)[:, 0] == 1)
[sub.tolist() for sub in np.split(a, inds) if sub.size]