Andaikan data tersebut diperoleh melalui analisis pasca data mentah besar-besaran:
[(id,node,val)(id,node,val)...]
ialah tuple id pengguna, pelayan dan nilai mengikut tertib, kemudian asingkan mengikut pelayan, dan kemudian isi berdasarkan val saiz, dan kemudian Tulis untuk cemerlang.
Atau jana [{"id":xxx,"node":xxx,"val":xxx},{"id":xxx,"node":xxx,"val":xxx}...]
Jika ia adalah Hanya terdapat satu set kv yang boleh diisih mengikut diisih, tetapi nama nod tidak diketahui sekarang, dan nama pelayan ini mungkin berubah setiap hari. Selepas saya memperoleh data tersebut, bagaimanakah saya boleh mengasingkan dan mengisih data mengikut nama pelayan?
Masalah utama di sini ialah nama nod itu sendiri tidak tetap Sebagai contoh, anda mula-mula membuat n senarai dan meletakkan data nod yang sama ke dalamnya, tetapi anda tidak tahu berapa banyak senarai yang perlu dibuat. Dan apabila menulis data yang diproses untuk cemerlang kemudian, gelung pasti akan digunakan.
Ini ialah kitaran dalam kitaran, dan nama kumpulan data baharu tidak ditentukan sama ada selepas data dikelaskan atau selepas ia disusun. Walaupun menggunakan arahan exec tidak dapat memenuhi keperluan
Selain itu, anda sebenarnya boleh menulis semua data ke dalam fail csv dengan id, nod, val
Menulis skrip shell melalui awk, uniq, sort dan alatan arahan Linux juga sangat pantas
Selain itu, tidak jelas berapa besar data besar anda dan susunan magnitudnya Jika jumlah data benar-benar besar, kemungkinan memori kod python di atas tidak mencukupi sendiri
Jika saya memahami keperluan anda dengan betul, anda boleh menggunakan kamus Kunci kamus ialah nama nod dan nilai kamus ialah senarai yang terdiri daripada item:
.Kemudian keluarkan nilai setiap item dalam kamus (iaitu senarai data) mengikut kekunci (nama pelayan), dan isikannya dengan menambah lambda untuk mengisihnya mengikut nilai tertentu dalam setiap item.