根据条件拆分列表中的数据

2024-10-02 00:42:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单:

data = ['A1', 'C3', 'B2', 'A2', 'D3', 'C2', 'A3', 'D2', 'C1', 'B1', 'D1', 'B3']

我想把名单分开,这样

split1 = ['A1', 'C3', 'B2', 'A2', 'C2', 'A3', 'C1', 'B1', 'B3']
split2 = ['D3', 'D2', 'D1']

限制条件是,具有相同前缀(A、B等)的项目不能在单独的列表中结束。数据可以按任何比例分割,如50-50、80-20


Tags: a2dataa1b2a3b1b3d2
1条回答
网友
1楼 · 发布于 2024-10-02 00:42:55

给你:

import numpy as np
data = np.array(['A1', 'C3', 'B2', 'A2', 'D3', 'C2', 'A3', 'D2', 'C1', 'B1', 'D1', 'B3'])

# define some condition
condition = ['B', 'D']
boolean_selection = [np.any([ c in d for c in condition]) for d in data]

split1 = data[boolean_selection]
split2 = data[np.logical_not(boolean_selection)]

相关问题 更多 >

    热门问题