如何按dict值分组并存储到javascript中的列表中

时间:2018-10-18 11:00:34

标签: javascript python pandas

我有一个字典,我想根据字典值中的唯一值制作n个列表。

例如:

dic={
"allenp":10,"amber.ebow@enron.com":13,"amelia.alland@enron.com":13,"andrea.ring@enron.com":15,"andy.zipper@enron.com":9,"anne.bike@enron.com":10,"anne.koehler@enron.com":4,"arnold-j":9,"barbara.gray@enron.com":6,"barton.clark@enron.com":9,"bass-e":6,"gary.lamphier@enron.com":6,"gay-r":13,"gerald.nemec@enron.com":12}

我想将其转换为预期输出,

[['anne.koehler@enron.com'], ['gary.lamphier@enron.com', 'bass-e', 'barbara.gray@enron.com'], ['arnold-j', 'barton.clark@enron.com', 'andy.zipper@enron.com'], ['allenp', 'anne.bike@enron.com'], ['gerald.nemec@enron.com'], ['amelia.alland@enron.com', 'gay-r', 'amber.ebow@enron.com'], ['andrea.ring@enron.com']]

如何使用Javascript完成此操作?

我是javascript新手。

如果我需要在python中解决此问题,请按以下步骤操作

df= pd.DataFrame(dic.items())
x=[]
[x.append(v[0].values.tolist()) for u,v in df.groupby([1])]
print x

请帮助我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以使用from google.cloud import bigquery client = bigquery.Client() datasets = list(client.list_datasets()) project = client.project if datasets: print('Datasets in project {}:'.format(project)) for dataset in datasets: # API request(s) print('Dataset: {}'.format(dataset.dataset_id)) query_job = client.query("select table_id, sum(size_bytes)/pow(10,9) as size from "+dataset.dataset_id+".__TABLES__ group by 1") results = query_job.result() for row in results: print("\tTable: {} : {}".format(row.table_id, row.size)) else: print('{} project does not contain any datasets.'.format(project)) 方法将一个对象中的值分组,然后在该对象上按reduce分组。

Object.values

您还可以使用const obj ={"allenp":10,"amber.ebow@enron.com":13,"amelia.alland@enron.com":13,"andrea.ring@enron.com":15,"andy.zipper@enron.com":9,"anne.bike@enron.com":10,"anne.koehler@enron.com":4,"arnold-j":9,"barbara.gray@enron.com":6,"barton.clark@enron.com":9,"bass-e":6,"gary.lamphier@enron.com":6,"gay-r":13,"gerald.nemec@enron.com":12} const arr = Object.entries(obj) .reduce((r, [k, v]) => { if(!r[v]) r[v] = []; r[v].push(k); return r; }, {}) console.log(Object.values(arr))循环将其添加到对象,然后使用for...of获得一个数组。

Object.values

答案 1 :(得分:0)

您可以使用:

如果只需要键:

<select (change)="setTipoProduto(tipoDoProduto)" [(ngModel)]="tipoDoProduto" name="tipoDoProdutoName"
    class="select-text">
    <option class="dropdown-item" selected>{{tipoDoProduto == null ? 'Tipo do Produto' : tipoDoProduto}}</option>

    <option [hidden]="tipoprodutos[k].tipo == tipoDoProduto" *ngFor="let tipoProduto of tipoprodutos;let k = index"
    class="dropdown-item">{{tipoprodutos[k].tipo}}</option>
</select>

如果仅需要值:

Object.entries(obj) === ["allenp", "amber.ebow@enron.com", "amelia.alland@enron.com", "andrea.ring@enron.com"]... etc

如果要在多维数组中使用值AND键:

Object.values(obj) === [10, 13, 13, 15, 9, 10]...etc