Saya baru-baru ini mulai menggunakan Python setelah menggunakan C dan PHP untuk waktu yang lama. Satu perbedaan yang saya perhatikan adalah bagaimana Python memperlakukan Kamus dan Daftar sebagai hal yang berbeda di mana array Indexed dan Associative hanya berbeda.

Saya berasumsi bahwa PHP dan C bertindak seperti ini karena sederhana. (Meskipun tolong perbaiki saya jika saya salah.) Apakah ada sumber yang berbicara tentang alasan mengapa Python (dan bahasa lain) memilih untuk memisahkan struktur data ini sedemikian rupa?

Saya tidak meminta, atau menyiratkan, peringkat apa pun tentang apa yang lebih baik, hanya mencoba untuk mendapatkan pemahaman tentang sesuatu yang baru bagi saya.

Terima kasih

(Menanggapi salah satu komentar, saya tampaknya salah ingat menggunakan array Asosiatif di C.)

0
user3034958 27 November 2017, 17:23

1 menjawab

Jawaban Terbaik

Saya pikir PHP mungkin menyebabkan kebingungan di sini. Pemahaman saya adalah bahwa semua array di PHP bersifat asosiatif, tetapi mereka mempertahankan urutan kunci tambahan untuk iterasi dan default untuk menggunakan kunci integer berurutan memberikan ilusi menjadi sama dengan array di lingkungan lain.

Kamus adalah sinonim untuk array asosiatif, dan dalam Python implementasi khusus yang digunakan adalah hashtable. Lingkungan lain mungkin menggunakan implementasi yang berbeda atau menawarkan banyak implementasi.

Daftar di Python seperti vektor di C++ - array di bawahnya tetapi menangani pengubahan ukuran dinamis. Namun, istilah "daftar" secara umum ambigu.

Saya tidak mengetahui adanya array asosiatif bawaan di C.

Tautan ini mungkin berguna untuk bacaan lebih lanjut:

https://en.wikipedia.org/wiki/Associative_array https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(associative_array)

1
ryachza 27 November 2017, 15:20