Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Semua Elemen dalam Senarai Python adalah Sama?

Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Semua Elemen dalam Senarai Python adalah Sama?

Mary-Kate Olsen
Lepaskan: 2024-11-28 12:49:14
asal
933 orang telah melayarinya

How Can I Efficiently Check if All Elements in a Python List are Identical?

Cara Menentukan sama ada Semua Elemen dalam Senarai adalah Sama dalam Python

Dalam Python, adalah perkara biasa untuk menemui senarai yang mengandungi pelbagai elemen data . Selalunya, kita perlu menentukan sama ada semua elemen dalam senarai adalah sama. Ini boleh berguna untuk pengesahan data dan semakan konsistensi.

Penyelesaian Python Menggunakan Iterator

Pendekatan yang paling Pythonic melibatkan penggunaan fungsi itertools.groupby():

from itertools import groupby

def all_equal(iterable):
    g = groupby(iterable)
    return next(g, True) and not next(g, False)
Salin selepas log masuk

Penyelesaian ini berulang pada senarai input, mengumpulkan elemen yang sama menggunakan groupby(). Jika hanya satu kumpulan wujud (semua elemen adalah sama), fungsi mengembalikan True. Jika tidak, ia mengembalikan Palsu.

Sebagai alternatif, anda boleh menggunakan pendekatan berulang berikut tanpa groupby():

def all_equal(iterator):
    iterator = iter(iterator)
    try:
        first = next(iterator)
    except StopIteration:
        return True
    return all(first == x for x in iterator)
Salin selepas log masuk

Penyelesaian Satu Pelapik

Python menawarkan beberapa baris satu yang ringkas penyelesaian:

def all_equal2(iterator):
    return len(set(iterator)) <= 1

def all_equal3(lst):
    return lst[:-1] == lst[1:]

def all_equal_ivo(lst):
    return not lst or lst.count(lst[0]) == len(lst)

def all_equal_6502(lst):
    return not lst or [lst[0]]*len(lst) == lst
Salin selepas log masuk

Pertimbangan Prestasi

Pilihan penyelesaian bergantung pada faktor seperti saiz senarai input dan pengagihan elemen di dalamnya. Secara amnya, penyelesaian menggunakan iterator adalah lebih cekap untuk senarai besar. Penyelesaian satu baris mungkin sesuai untuk senarai yang lebih kecil atau apabila kelajuan bukan faktor kritikal.

Kesimpulan

Python menyediakan pelbagai cara untuk menyemak sama ada semua elemen dalam senarai adalah sama. Pendekatan yang paling Pythonic melibatkan penggunaan groupby() atau iterator. Penyelesaian satu baris menawarkan ringkas tetapi mungkin mempunyai beberapa kelemahan prestasi. Apabila memilih penyelesaian, pertimbangkan keperluan khusus permohonan anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Semua Elemen dalam Senarai Python adalah Sama?. 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