Cara menggunakan Golang untuk melaksanakan penjumlahan klasifikasi

PHPz
Lepaskan: 2023-04-24 10:57:54
asal
794 orang telah melayarinya

Dalam pengaturcaraan komputer, penjumlahan kategori adalah masalah biasa, iaitu, mengelaskan set nombor mengikut atributnya dan menjumlahkan nombor dalam setiap kategori. Masalah ini mempunyai aplikasi dalam banyak bidang, seperti statistik, perlombongan data, analisis data, dll. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan penjumlahan kategori menggunakan Golang.

Pertama, kita perlu mentakrifkan struktur data untuk mewakili nombor, yang mengandungi dua atribut, iaitu nilai dan kategori. Di Golang, kita boleh menggunakan struktur untuk melaksanakan struktur data ini Kodnya adalah seperti berikut:

type Data struct {
    value float64
    category string
}
Salin selepas log masuk

Seterusnya, kita perlu mencipta fungsi untuk mengklasifikasikan set input data mengikut kategorinya dan mengelaskan Sum. nombor dalam setiap kategori. Fungsi ini harus menerima senarai data sebagai input dan mengembalikan kamus yang kuncinya adalah kategori dan nilainya ialah jumlah nombor dalam kategori itu. Di Golang, kita boleh menggunakan jenis peta untuk melaksanakan kamus ini Kodnya adalah seperti berikut:

func sumByCategory(dataList []Data) map[string]float64 {
    sumsByCategory := make(map[string]float64)
    for _, data := range dataList {
        sumsByCategory[data.category] += data.value
    }
    return sumsByCategory
}
Salin selepas log masuk

Fungsi ini mula-mula mencipta peta kosong untuk menyimpan jumlah nombor dalam setiap kategori. Kemudian, lelaran melalui senarai data input dan tambah setiap nombor kepada jumlah kategori yang sepadan. Akhir sekali, kembalikan peta yang mengandungi jumlah nombor dalam setiap kategori.

Berikut ialah contoh program lengkap untuk menguji fungsi yang kami laksanakan di atas:

package main

import "fmt"

type Data struct {
    value float64
    category string
}

func sumByCategory(dataList []Data) map[string]float64 {
    sumsByCategory := make(map[string]float64)
    for _, data := range dataList {
        sumsByCategory[data.category] += data.value
    }
    return sumsByCategory
}

func main() {
    dataList := []Data{
        {2.0, "A"},
        {3.2, "B"},
        {4.5, "C"},
        {1.8, "A"},
        {2.3, "B"},
        {5.1, "C"},
    }

    sumsByCategory := sumByCategory(dataList)
    fmt.Println(sumsByCategory)
}
Salin selepas log masuk

Menjalankan program ini akan mengeluarkan keputusan berikut:

map[A:3 B:5.5 C:9.6]
Salin selepas log masuk

Keputusan ini menunjukkan bahawa fungsi jumlah kategori kami dengan betul mengisih data input ke dalam kategorinya dan menjumlahkan nombor dalam setiap kategori.

Akhir sekali, adalah penting untuk ambil perhatian bahawa dalam masalah sebenar, data mungkin sangat besar dan tidak semua boleh disimpan dalam ingatan. Dalam kes ini, kita boleh menggunakan algoritma pengisihan luaran untuk mengisih data menjadi kepingan dan kemudian melakukan penjumlahan klasifikasi. Algoritma ini akan melibatkan lebih banyak fungsi terbina dalam Golang dan pustaka luaran, dan berada di luar skop artikel ini.

Ringkasnya, penjumlahan kategori adalah masalah biasa dan sangat mudah untuk dilaksanakan di Golang. Menggunakan jenis struct dan peta Golang, kita boleh mengelaskan set data dengan mudah mengikut atributnya dan menjumlahkan nombor dalam setiap kategori.

Atas ialah kandungan terperinci Cara menggunakan Golang untuk melaksanakan penjumlahan klasifikasi. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!