Как классифицировать данные в вложенном списке Python - PullRequest
1 голос
/ 24 мая 2019

Мне нужно классифицировать вложенный список Python следующим образом.

[
['amal', 20],
['kamal', 25],
['amal', 30]
]

ответ должен быть,

[amal,20,30]
[kamal,25]

Ответы [ 3 ]

1 голос
/ 24 мая 2019

Другой подход будет работать с groupby на Pandas DataFrame:

import pandas as pd

data = [
    ['amal', 20],
    ['kamal', 25],
    ['amal', 30]
]

df = pd.DataFrame(data, columns=['key', 'value'])
grouped = data.groupby('key').agg(list)
print(grouped.head())
1 голос
/ 24 мая 2019

Вы можете использовать itertools.groupby для группировки подсписков по первому значению:

from itertools import groupby
from operator import itemgetter as g

[[k, *(i[1] for i in v)] for k,v in groupby(sorted(l, key=g(0)), g(0))]
# [['amal', 20, 30], ['kamal', 25]]
0 голосов
/ 24 мая 2019

Вот еще один способ сделать это.

list1 = [
['amal', 20],
['kamal', 25],
['amal', 30]
]

ls2=[]
k = set([i[0] for i in list1])
for i in k: 
    k2 = [ j[1] for j in list1 if j[0]==i]
    k2.insert(0,i)
    ls2.append(k2)

ls2
# Output: [['kamal', 25], ['amal', 20, 30]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...