我有一个字典,我想根据字典值中的唯一值制作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
请帮助我解决这个问题。
答案 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