Pertanyaan Sesuatu seperti meningkatkan :: multi_index untuk Python


Saya telah menghargai banyak dorongan :: multi_index di C ++. Itu terjadi bahwa saya dengan senang hati akan menggunakan sesuatu seperti itu dengan Python; untuk skrip yang memproses data yang keluar dari aplikasi intensif numerik. Apakah ada yang namanya Python? Saya hanya ingin memastikan bahwa itu tidak ada, maka saya akan mencoba menerapkannya sendiri. Hal-hal yang tidak akan melakukannya untuk saya:

  • Wrapping boost :: multi_index dengan Python. Itu tidak skala.

  • Menggunakan sqlite3 di memori. Itu jelek.


5
2017-09-24 14:46


asal


Jawaban:


Untuk menjawab pertanyaan Anda tentang apakah hal serupa ada di Python, saya akan mengatakan tidak.

Salah satu fitur yang bermanfaat dari Boost.MultiIndex adalah bahwa elemen dapat dimodifikasi di tempat (melalui ganti () atau modifikasi ()). Pendapat asli Python tidak menyediakan fungsi seperti itu dan membutuhkan kunci untuk berubah. Saya belum melihat implementasi lain yang memungkinkan kunci diubah. Jadi di area spesifik ini, tidak ada yang sebanding dengan Boost.MultiIndex dengan Python.

Jika Anda hanya membutuhkan beberapa tampilan statis data Anda, maka saya setuju dengan Radomir Dopieralski. Anda dapat membungkus beberapa dicts di kelas Anda sendiri untuk menyediakan API terpadu untuk memastikan sinkronisasi antara tampilan yang berbeda. Saya tidak tahu apa yang Anda maksud dengan "transformasi sadar-kinerja" tetapi jika Anda berbicara tentang kompleksitas komputasional dari operasi penyisipan / penghapusan, bahkan dengan Boost.MultiIndex, "menyisipkan elemen ke multi_index_container mengurangi ke kombinasi sederhana dari operasi penyisipan dasar pada masing-masing indeks, dan juga untuk penghapusan. "


1
2018-01-29 15:47



Karena koleksi python hanya menyimpan referensi ke objek, bukan objek itu sendiri, tidak ada banyak perbedaan antara memiliki satu koleksi dengan beberapa skema pengindeksan, dan hanya memiliki beberapa koleksi.

Anda dapat misalnya memiliki beberapa dicts dengan data Anda, masing-masing menggunakan kunci yang berbeda untuk merujuk pada mereka.


2
2017-09-25 10:50