Pertama sekali, terdapat sejumlah besar data, yang dibahagikan kepada 3 unit:
类型 第一个值 第二值
Sebagai contoh, terdapat 100 keping data sedemikian sekarang. Bagaimana untuk menanganinya?
Langkah pertama
Idea saya ialah membina 1:n:1 melalui kamus.
Namun, keadaan sekarang. Jika jenis adalah kunci, apakah yang perlu dilakukan jika terdapat jenis yang sama? Kerana kunci kamus adalah unik.
Langkah kedua ialah saya ingin mendapatkan nilai kedua melalui nilai pertama. Bagaimanakah saya boleh mendapatkan nilai kedua daripada nilai pertama tanpa mengetahui nilai pertama?
Terima kasih! ~
Mungkin ungkapannya tidak jelas, saya berikan contoh 1:n:1
Sebagai contoh, terdapat dua keping data seperti ini
类型 第一个值 第二个值
(1) zhangsan 2017-01-01 是的我来了
(2) zhangsan 2017-05-01 我要走了
Kemudian saya ingin mengarang seperti ini:
'zhangsan':{{'2017-01-01': '是的我来了'},{'2017-05-01':'我要走了'}}
Inilah hasil yang saya mahukan.
Maksudnya. 1:n:1 bermaksud 类型:第一个值:第二个值
Saya tidak tahu jika ada penyelesaian yang boleh dilaksanakan
Yang pertama: Jika nilai pertama adalah unik di bawah jenis yang sama, maka anda boleh mencuba struktur berikut:
Perkara di atas bermakna mencipta nilai lalai
.字典
的字典mapping
, 然后用类型
和第一个值
分别作为索引的key, 我个人觉得, 在类型
和第一个值
的共同约束下, 找到的第二个值
sepatutnya unik Jika ia tidak unik, maka anda perlu mempertimbangkan sama ada untuk menulis ganti atau wujud dalam bentuk senaraiKedua:
Jika anda menggunakan struktur data yang saya nyatakan di atas, maka tanpa mengetahui nilai pertama, anda hanya boleh merentasi pemetaan[value_type], dan kemudian tentukan sama ada nilai itu adalah apa yang anda mahukan
Apakah maksud 1:n:1? Pemetaan hubungan? Tetapi ini tidak penting saya mempunyai cara yang mudah dan kasar untuk menulis setiap keping data sebagai 3-tuple (jenis, val1, val2), dan kemudian menyimpan setiap keping data ke dalam tatasusunan [];
pembinaan Apabila membuat tatasusunan, buat 3 dicts, typeDict = {type: [arrIdx]}, val1Dict={val1:[arrIdx]}, val2Dict={val2:[arrIdx]}
Apabila anda ingin menggunakan type untuk mencari data, hanya gunakan typeDict daripada Cari semua lokasi rekod yang sepadan dengan jenis.
Begitu juga, val1 dan val2 adalah sama.
Apabila anda ingin mencari jenisA, val1=n, anda hanya perlu memotong set hasil yang ditemui daripada typeDict, val1Dict.
Sekiranya jumlah data yang banyak, nampaknya lebih cekap menggunakan pangkalan data seperti mysql atau panda yang pakar dalam pemprosesan data. Panda juga mempunyai fungsi to_dict khusus.