Masalah:
Diberi satu set pasangan data, kumpulkan mereka berdasarkan nilai pada indeks yang ditentukan dan tukarkannya ke dalam format yang diingini.
Penyelesaian:
Untuk mengumpulkan pasangan data mengikut jenisnya dengan cekap, ikut langkah berikut:
Langkah 1: Buat Kamus
Buat kamus menggunakan defaultdict daripada modul koleksi, dengan kunci ialah jenis dan nilainya ialah senarai nilai:
<code class="python">from collections import defaultdict res = defaultdict(list) for v, k in input: res[k].append(v)</code>
Langkah 2: Tukar Kamus kepada Format Yang Diingini
Tukar kamus yang dibuat kepada senarai kamus dengan format yang dikehendaki:
<code class="python">result = [{'type': k, 'items': v} for k,v in res.items()]</code>
Pertimbangan Tambahan:
Pendekatan Alternatif Menggunakan **itertools.groupby()**:
Pendekatan alternatif melibatkan penggunaan fungsi itertools.groupby, tetapi memerlukan data input diisih terlebih dahulu.
<code class="python">import operator as itemgetter import itertools sorted_input = sorted(input, key=itemgetter(1)) groups = itertools.groupby(sorted_input, key=itemgetter(1)) result = [{'type': k, 'items':[x[0] for x in v]} for k, v in groups]</code>
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan-jawapan dan fokus artikel untuk mengumpulkan pasangan data dalam Python: Pilihan 1 (Umum): * Cara Menghimpunkan Pasangan Data dalam Python Berdasarkan S. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!