Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Isih Satu Senarai Berdasarkan Nilai Senarai Sepadan?

Bagaimanakah Saya Boleh Isih Satu Senarai Berdasarkan Nilai Senarai Sepadan?

Mary-Kate Olsen
Lepaskan: 2024-12-22 11:43:10
asal
569 orang telah melayarinya

How Can I Sort One List Based on the Values of a Corresponding List?

Isih Senarai mengikut Nilai Sepadan daripada Senarai Selari

Dalam senario ini, anda mempunyai dua senarai, X dan Y, di mana setiap elemen dalam Y sepadan dengan nilai yang dikaitkan dengan elemen dalam X. Matlamat anda adalah untuk mengisih senarai X berdasarkan nilai dalam senarai Y.

Satu pendekatan yang cekap untuk mencapai ini ialah menggunakan pemahaman senarai bersama-sama dengan fungsi zip() dan sorted():

[x for _, x in sorted(zip(Y, X))]
Salin selepas log masuk

Mari kita pecahkan coretan kod ini:

  1. zip(Y, X): Ini mencipta senarai tupel, di mana setiap tuple mengandungi elemen yang sepadan daripada senarai Y dan X.
  2. diisih(... , key=lambda pair: pair[0]): Ini mengisih senarai tuple yang dijana berdasarkan elemen pertama setiap tupel (nilai daripada senarai Y).
  3. [x untuk _, x dalam ...]: Akhir sekali, pemahaman senarai digunakan untuk mengekstrak elemen kedua setiap tuple yang diisih, yang memberikan anda nilai X yang sepadan dalam tertib diisih.

Contoh:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,   0,   1,   2,   2,   0,   1 ]

result = [x for _, x in sorted(zip(Y, X))]
print(result)  # ['a', 'd', 'h', 'b', 'c', 'e', 'i', 'f', 'g']
Salin selepas log masuk

Kod ini akan mengeluarkan senarai yang diisih mengikut nilai yang sepadan dalam senarai Y: ["a", "d", "h", "b", "c", "e", "i", "f", "g"].

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Satu Senarai Berdasarkan Nilai Senarai Sepadan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan