Rumah > pembangunan bahagian belakang > Tutorial Python > Dapatkan jumlah nombor dalam senarai rentetan menggunakan Python

Dapatkan jumlah nombor dalam senarai rentetan menggunakan Python

WBOY
Lepaskan: 2023-09-07 22:41:12
ke hadapan
2669 orang telah melayarinya

Dapatkan jumlah nombor dalam senarai rentetan menggunakan Python

Dalam Python, kita boleh menggunakan pelbagai kaedah untuk menjumlahkan nombor dalam senarai rentetan, seperti menggunakan ungkapan biasa, menggunakan isdigit() dan senarai pemahaman, menggunakan pemisahan dan penyambungan, dsb. Apabila bekerja dengan senarai yang mengandungi rentetan, anda sering menghadapi situasi di mana anda perlu mengekstrak dan menjumlahkan nilai berangka daripada rentetan ini. Ini amat berguna apabila bekerja dengan fail teks, fail log atau mengikis web, contohnya. Dalam artikel ini, kami akan menggunakan contoh dan algoritma yang berbeza untuk memahami kaedah ini.

Algoritma

Algoritma umum untuk mencari jumlah nombor dalam senarai rentetan menggunakan Python adalah seperti berikut:

  • Tentukan fungsi yang mengambil senarai rentetan sebagai input.

  • Sambungkan semua elemen dalam senarai rentetan menjadi satu rentetan.

  • Gunakan corak atau kaedah untuk mengekstrak nilai berangka daripada rentetan.

  • Tukar nilai yang diekstrak kepada integer.

  • Jumlah senarai integer.

  • Kembalikan hasil penjumlahan sebagai nilai pulangan.

Kaedah 1: Gunakan ungkapan biasa

Ekspresi biasa menyediakan cara yang cekap untuk memadankan corak dalam rentetan. Dengan mentakrifkan corak dan menggunakan fungsi re.findall(), kita boleh mengekstrak semua nilai daripada senarai rentetan. Nilai-nilai ini kemudiannya ditukar kepada integer dan dijumlahkan untuk mendapatkan hasil akhir.

Tatabahasa

numbers = [int(num) for num in re.findall(pattern, ''.join(string_list))]
Salin selepas log masuk

Di sini, pemahaman senarai [int(num) untuk num dalam re.findall(pattern, ''.join(string_list))] digunakan untuk menukar rentetan yang dipadankan kepada integer.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Dalam contoh di atas, kami mempunyai string_list dengan tiga elemen. Panggil fungsi sum_numbers() dengan string_list sebagai argumen. Corak ungkapan biasa r"d+" sepadan dengan satu atau lebih nombor dalam setiap elemen senarai. Nombor yang sepadan diekstrak menggunakan pemahaman senarai dan ditukar kepada integer. Akhirnya, fungsi sum() mengira jumlah nombor ini.

import re

def sum_numbers(string_list):
    pattern = r"\d+"
    numbers = [int(num) for num in re.findall(pattern, ''.join(string_list))]
    return sum(numbers)

string_list = ['abc123', 'def456', 'ghi789']
print(sum_numbers(string_list))
Salin selepas log masuk

Output

1368
Salin selepas log masuk
Salin selepas log masuk

Kaedah 2: Gunakan isdigit() dan senaraikan pemahaman

Kaedah ini menggunakan kaedah isdigit(), yang digunakan untuk menyemak sama ada aksara ialah digit, digabungkan dengan pemahaman senarai. Dengan mengulangi setiap aksara dalam senarai rentetan dan menapis aksara bukan angka, kita boleh menukar nombor yang tinggal kepada integer. Senarai yang terhasil kemudiannya dijumlahkan untuk mendapatkan jumlah yang dikehendaki.

Tatabahasa

numbers = [int(char) for item in string_list for char in item if char.isdigit()]
Salin selepas log masuk

Di sini, pemahaman senarai [int(char) untuk item dalam string_list untuk char dalam item jika char.isdigit()] digunakan untuk melelakan setiap aksara dalam setiap elemen dalam string_list. Kaedah isdigit() digunakan untuk menyemak sama ada aksara ialah digit.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Dalam contoh di bawah, kami mempunyai string_list yang sama seperti sebelumnya. Panggil fungsi sum_numbers() dengan string_list sebagai argumen. Pemahaman senarai berulang pada setiap aksara dalam setiap elemen string_list. Kaedah isdigit() menyemak sama ada aksara ialah digit dan jika ya, menukarkannya kepada integer. Kemudian gunakan fungsi sum() untuk menjumlahkan senarai nombor yang terhasil.

def sum_numbers(string_list):
    numbers = [int(char) for item in string_list for char in item if char.isdigit()]
    return sum(numbers)

string_list = ['abc123', 'def456', 'ghi789']
print(sum_numbers(string_list))
Salin selepas log masuk

Output

45
Salin selepas log masuk

Kaedah 3: Gunakan Split and Join

Dalam kaedah ini, elemen senarai rentetan digabungkan menjadi rentetan tunggal menggunakan kaedah join(). Rentetan bercantum kemudiannya dibahagikan kepada senarai perkataan. Dengan mengulangi setiap perkataan dan menapis perkataan bukan angka, kita boleh menukar perkataan yang tinggal kepada integer. Akhir sekali, jumlahkan senarai nombor yang terhasil untuk mendapatkan hasil yang diingini.

Tatabahasa

numbers = ''.join(string_list).split()
 numbers = [int(num) for num in numbers if num.isdigit()]
Salin selepas log masuk

Di sini, gunakan kaedah join() untuk menggabungkan semua elemen string_list ke dalam rentetan.

Kemudian gunakan kaedah split() pada rentetan bercantum untuk memisahkannya menjadi senarai perkataan. Gunakan pemahaman senarai [int(num) untuk num dalam nombor jika num.isdigit()] untuk lelaran melalui setiap elemen dalam senarai nombor dan tukarkannya kepada integer jika ia hanya mengandungi nombor.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Dalam contoh di bawah, kami menggunakan fungsi filter() dan str.isdigit sebagai syarat penapis untuk mengekstrak bahagian digit sahaja daripada setiap item senarai rentetan. Kami kemudiannya menyertai nombor yang ditapis menggunakan ''.join() dan menukar hasilnya kepada integer menggunakan int().

def sum_numbers(string_list):
    numbers = [int(''.join(filter(str.isdigit, item))) for item in string_list]
    return sum(numbers)

string_list = ['abc123', 'def456', 'ghi789']
print(sum_numbers(string_list))
Salin selepas log masuk

Output

1368
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Dalam artikel ini, kami membincangkan cara mencari jumlah nombor dalam senarai rentetan menggunakan kaedah berbeza dalam Python. Kami membincangkan tiga kaedah: menggunakan ungkapan biasa (re), memanfaatkan kaedah isdigit() dalam pemahaman senarai, dan menggunakan operasi split dan join. Setiap kaedah mempunyai kelebihan tersendiri dan boleh digunakan bergantung kepada keperluan khusus tugas.

Atas ialah kandungan terperinci Dapatkan jumlah nombor dalam senarai rentetan menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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