У меня есть список списков, которые я позже хочу превратить в словарь. Проблема в том, что список списков очень нерегулярен: для одного ключа существует от 1 до 4 списков с номерами, принадлежащими этому ключу. Исходный набор данных хранится в json. Это примерный набор данных:
data = [36146779,
[17628,35633, 2847385, 71393, 41814],[51068348,49722,3255134,66598],[103475099, 1337536, 1136863360,257],
22971125,
[230806,116805,118456,9031, 3573662],[719279707,299836,40722,35134,668],[1337536, 1136863360,257],
111125168,
[719279707,299836,40722,35138],[17628,35633, 2847385],
71280747,
[806,116805,11845],[17628,35633, 2847385]]
Мне удалось полностью сгладить список списков, но я застрял, превращая этот плоский список в словарь с заданными ключами.
ex_eco = ["36146779","22971125","111125168","71280747"]
(Я уверен, что также можно напрямую превратить первый вложенный список в словарь, но я не смог найти решение, поэтому попробовал так)
def flatten(l):
out = []
for item in l:
if isinstance(item, (list, tuple)):
out.extend(flatten(item))
else:
out.append(item)
return out
flattened_eco = flatten(data)
print(flattened_eco[0:100])
Я получаю плоский список:
[36146779, 17628, 35633, 2847385, 71393, 41814, 51068348, 49722, 3255134, 66598, 103475099, 1337536, 1136863360, 257, 22971125, 230806, 116805, 118456, 9031, 3573662, 719279707, 299836, 40722, 35134, 668, 1337536, 1136863360, 257, 111125168, 719279707, 299836, 40722, 35138, 17628, 35633, 2847385, 71280747, 806, 116805, 11845, 17628, 35633, 2847385]
Мне нужно что-то вроде этого:
[36146779,
[17628,35633, 2847385, 71393,41814,51068348,49722,3255134,66598,103475099,1337536, 1136863360,257],
22971125,
[230806,116805,118456,9031,573662,719279707,299836,40722,35134,668,1337536, 1136863360,257],
111125168,
[719279707,299836,40722,35138,17628,35633, 2847385],
71280747,
[806,116805,11845,17628,35633, 2847385]
]