Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisih Senarai Rentetan Berdasarkan Nilai Integer Sepadan dalam Senarai Lain?

Bagaimana untuk Mengisih Senarai Rentetan Berdasarkan Nilai Integer Sepadan dalam Senarai Lain?

Susan Sarandon
Susan Sarandonasal
2024-12-31 16:00:20248semak imbas

How to Sort a List of Strings Based on Corresponding Integer Values in Another List?

Isih Senarai Menggunakan Nilai Sepadan daripada Senarai Lain

Memandangkan dua senarai, X mengandungi rentetan dan Y mengandungi integer, anda bertujuan untuk mengisih X mengikut nilai yang sepadan dalam Y sambil mengekalkan susunan asal unsur dengan nilai "kunci" yang sama. Terokai penyelesaian dioptimumkan berikut menggunakan fungsi terbina dalam Python:

[x untuk _, x dalam disusun(zip(Y, X))]

Contoh:

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

Z = [x for _,x in sorted(zip(Y,X))]
print(Z)  # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]

Penjelasan:

  1. zip(Y, X) mencipta senarai tupel, setiap satu mengandungi unsur daripada Y dan unsur yang sepadan daripada X.
  2. diisih(zip(Y, X)) mengisih senarai tupel berdasarkan elemen pertama (nilai daripada Y).
  3. [x untuk _, x dalam diisih(. ..)] mencipta senarai baharu dengan mengulangi senarai tuple yang diisih, membuang elemen pertama (_), dan hanya menyimpan elemen kedua (x).

Penjelasan Lanjut:

Fungsi sorted() membolehkan anda menentukan fungsi utama yang menentukan kriteria pengisihan. Dalam kes ini, kami menggunakan key=lambda pair: pair[0] untuk mengisih tupel berdasarkan elemen pertamanya. Ini dengan berkesan mengisih X berdasarkan nilai yang sepadan dalam Y.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Rentetan Berdasarkan Nilai Integer Sepadan dalam Senarai Lain?. 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