Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisih Senarai Senarai mengikut Indeks Khusus dalam Python?

Bagaimana untuk Mengisih Senarai Senarai mengikut Indeks Khusus dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-25 10:49:12690semak imbas

How to Sort a List of Lists by a Specific Index in Python?

Isih Senarai Senarai mengikut Indeks Menggunakan Python

Isih senarai senarai mengikut indeks tertentu senarai dalaman boleh dicapai dalam Python menggunakan operator itemgetter daripada modul operator.

Masalah Pernyataan:

Memandangkan senarai senarai, di mana setiap senarai dalam mengandungi tiga elemen: dua integer dan rentetan, objektifnya adalah untuk mengisih senarai luar berdasarkan nilai rentetan dalam senarai dalam.

Penyelesaian:

Pengendali itemgetter boleh digunakan pada senarai senarai menggunakan hujah utama fungsi yang disusun. Ini membenarkan untuk menentukan indeks senarai dalaman yang harus digunakan untuk mengisih.

Kod Python:

>>> from operator import itemgetter
>>> L = [[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> sorted(L, key=itemgetter(2))
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]

Penjelasan:

Dalam kod di atas:

  • daripada operator import itemgetter mengimport pengendali itemgetter.
  • L ialah senarai senarai yang disediakan.
  • sorted(L, key=itemgetter(2)) memanggil fungsi sorted untuk mengisih senarai L. Argumen kunci menentukan operator itemgetter(2), yang menunjukkan bahawa nilai rentetan (indeks 2) setiap senarai dalaman harus digunakan untuk pengisihan.

Sebagai alternatif, fungsi lambda boleh digunakan sebagai ganti itemgetter:

>>> sorted(L, key=lambda x: x[2])
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]

Walau bagaimanapun, pendekatan itemgetter biasanya lebih cekap dalam senario ini.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Senarai mengikut Indeks Khusus dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn