Rumah >pembangunan bahagian belakang >Tutorial Python >Bolehkah saya mendapatkan item N teratas daripada penjana atau senarai dalam Python?

Bolehkah saya mendapatkan item N teratas daripada penjana atau senarai dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-20 20:03:30979semak imbas

Can I retrieve the top N items from a generator or list in Python?

Mengambil N Item Teratas daripada Penjana atau Senarai dalam Python

Dalam soalan ini, pengguna bertanya tentang Python yang setara dengan LINQ arahan Take(5) untuk mendapatkan semula lima elemen pertama daripada tatasusunan. Untuk menangani permintaan ini, berbilang penyelesaian disediakan.

Menghiris Senarai

Senarai python boleh dihiris menggunakan sintaks berikut:

array[start:stop:step]

Apabila setiap parameter boleh ditinggalkan, menghasilkan kepingan sah berikut:

  • tatasusunan[mula:]
  • tatasusunan[:stop]
  • susun[::step ]

Contohnya:

top5 = array[:5]

Menghiris Penjana

Menghiris penjana secara langsung dalam Python tidak boleh dilakukan. Sebaliknya, fungsi itertools.islice() boleh digunakan, yang menerima sintaks berikut:

itertools.islice(generator, start, stop, step)

Menggunakan itertools.islice(), anda boleh mendapatkan lima elemen pertama penjana:

import itertools
top5 = itertools.islice(my_list, 5)

Pertimbangan Tambahan

Apabila menghiris penjana, anda harus ambil perhatian bahawa ia akan meletihkannya sebahagiannya. Untuk mengekalkan penjana yang utuh, pertimbangkan untuk menukarnya kepada tuple atau senarai dahulu, seperti:

result = tuple(generator)

Atas ialah kandungan terperinci Bolehkah saya mendapatkan item N teratas daripada penjana atau senarai 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