Вот пример:
list_1 = ['x1 y1','x1 y2','x1 y3','x1 y4','x2 b1','x2 b2','x2 b3','x2 b4']
x1 = []
x2 = []
dict_1 = {}
for i in list_1:
if 'x1' in i:
j = i.split()
x1.append(j[1])
if 'x2' in i:
j = i.split()
x2.append(j[1])
dict_1 = {'x1': x1, 'x2': x2}
print(dict_1)
Выход:
{'x1': ['y1', 'y2', 'y3', 'y4'], 'x2': ['b1', 'b2', 'b3', 'b4']}
Мы создаем пустые списки для всего, что принадлежит x1 и x2. Мы также создаем и очищаем dict, к которому мы добавим значения позже. Затем мы запускаем цикл for, в котором говорится, что если в значении есть x1, мы разделим это значение, и индекс один добавится к x1. Если 'x2' находится в значении, тогда индекс один будет добавлен к x2. Затем мы создаем дополнительные значения в словаре с ключами x1 или x2, а список соответствует значениям x1 или x2. Выход - это то, что вы ищете.
Также заметьте, вы используете numpy? Или вы разработчик Java? В Python то, что вы ищете в качестве выходных данных, технически представляет собой «вложенный список» со словарем, являющимся основной структурой данных. Не массив. В Java это будет массив в карте. Мне было просто любопытно, потому что вы звучите как Java-разработчик, который мне кажется интересным, потому что язык, на котором вы пишете, может повлиять на словоблудие.