Alat berikut memvisualisasikan apa yang dilakukan komputer langkah demi langkah saat menjalankan program tersebut Show
Editor Kode Python Punya cara lain untuk menyelesaikan solusi ini? Sebelumnya. Tulis program Python untuk menemukan kata berulang pertama dalam string yang diberikan Berapa tingkat kesulitan latihan ini? Mudah Sedang KerasUji keterampilan Pemrograman Anda dengan kuis w3resource Ikuti kami di Facebook dan Twitter untuk pembaruan terbaru. Piton. Kiat Hari IniDeque Deque atau (Double Ended Queue) adalah objek Python dua ujung yang dengannya Anda dapat melakukan operasi tertentu dari kedua ujungnya Ini dapat digunakan saat kumpulan diperlukan untuk dioperasikan di kedua ujungnya dan dapat memberikan efisiensi dan kesederhanaan dibandingkan struktur data tradisional seperti daftar Alat berikut memvisualisasikan apa yang dilakukan komputer langkah demi langkah saat menjalankan program tersebut Editor Kode Python Punya cara lain untuk menyelesaikan solusi ini? Sebelumnya. Tulis program Python untuk menemukan karakter berulang pertama dari string yang diberikan di mana indeks kejadian pertama terkecil Berapa tingkat kesulitan latihan ini? Mudah Sedang KerasUji keterampilan Pemrograman Anda dengan kuis w3resource Ikuti kami di Facebook dan Twitter untuk pembaruan terbaru. Piton. Kiat Hari IniDeque Deque atau (Double Ended Queue) adalah objek Python dua ujung yang dengannya Anda dapat melakukan operasi tertentu dari kedua ujungnya Ini dapat digunakan saat kumpulan diperlukan untuk dioperasikan di kedua ujungnya dan dapat memberikan efisiensi dan kesederhanaan dibandingkan struktur data tradisional seperti daftar Artikel ini akan membahas empat hal. cara yang salah untuk menemukan kata yang digandakan, cara menemukan kata yang diulang dengan benar dalam kalimat dengan Python, menghitung kemunculan kata yang digandakan, dan, terakhir, mendiskusikan cara menangani tanda baca saat menghitung kata yang digandakan dalam string Python Cara yang Salah untuk Menemukan Kata yang Digandakan dalam String PythonThe first function that may come to mind when counting words in a string is Kode berikut menunjukkan bagaimana metode dapat menghasilkan hasil yang salah 1 2 3 4 5 6 7 8 str1 = "beberapa teks di sini" str2 = "beberapa latihan membuat seseorang lelah"
# Correct results from cetak(str1. hitung("beberapa")) # returns 1
# Wrong results from cetak(str2. hitung("beberapa")) # returns 2 Berikut adalah dua metode yang digunakan untuk mendapatkan hasil yang benar
Metode 1. Menggunakan kamus for-loop dan PythonMetode ini menyelesaikan tugas menghitung kata yang digandakan dalam tiga langkah. mengubah string Python menjadi daftar kata, mengulangi kata-kata dalam daftar, menghitung kejadian, memfilter hasil untuk mendapatkan duplikat, dan terakhir, menyortir daftar agar kata yang paling banyak digandakan muncul lebih dulu Ini kodenya dengan komentar untuk menjelaskan setiap baris 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 def count_occurence1(str1): """ Memasukkan. str1 - String Python Keluaran. Kamus yang diurutkan dengan jumlah duplikat kata-kata """ # Pisahkan kalimat menjadi kata-kata di sepanjang spasi kata = str1. pisah() # Menginisialisasi kamus kosong untuk menyimpan hitungan kita. menghitung = {} # Ulangi setiap kata dan hitung kemunculannya untuk kata dalam kata: # Jika dihitung. get(word) mengembalikan Tidak ada, artinya # ini pertama kali menemukan kata itu # Dalam hal ini, buat kunci. nilai pembayaran sesuai hitungan # dengan kuncinya adalah kata dan nilai=1 (kemunculan pertama) # jika kata sudah ada, tambah jumlahnya # per 1 jika dihitung. dapatkan(kata) adalah . None: menghitung[kata] = 1 selain itu. menghitung[kata] += 1 # Kita menginginkan pengulangan kata yang merupakan kunci. nilai yang mana # nilai>1 duplikat = {kunci: nilai untuk kunci, nilai . in counts.item() jika nilai > 1} # Urutkan kamus yang dihasilkan berdasarkan item[1] yang merupakan nilai # reverse=True berarti mengurutkan dalam urutan menurun. # Penalaran. Dicts mempertahankan urutan penyisipan di Python 3. 7 dan seterusnya. sorted_counts = dict( diurutkan(digandakan. item(), kunci . =lambda item: barang[1], reverse=True) ) # mengembalikan hasil kembalikan diurutkan_ menghitung
# Inisialisasi string pertama str1 = "Dia mengambil tiga ribu tiga ratus dan\ dan tiga puluh tiga dan dia membutuhkan lebih banyak. " # Panggil fungsi coutn_occurence1() untuk menemukan duplikat result1 = count_occurence1(str1) # Hasil cetak cetak(hasil1)
str2 = "Beberapa kalimat di sini. Beberapa kalimat yang akan diperiksa. " results2 = count_occurence1(str2) cetak(hasil2) Keluaran {'and': 4, 'three': 3} {'Some': 2, 'sentence': 2} Alternatifnya, Anda dapat menggunakan counts=collections. defaultdict(int) sebagai ganti menginisialisasi kamus kosong sebagai counts={}. Yang pertama membuat item apa pun yang tidak ada saat Anda mencoba mengaksesnya Hitungan = koleksi. defaultdict(int) berarti kamus counts hanya akan menerima bilangan bulat (int) sebagai nilainya, bukan tipe data lainnya. Lihat di bawah 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 impor koleksi
def count_occurence_1a(str1): """ Memasukkan. str1. String yang ingin kita proses, Pengembalian. Kamus hitungan untuk kata yang digandakan """ kata = str1. pisah() menghitung = koleksi. defaultdict(int) untuk kata dalam kata: menghitung[kata] += 1 menghitung = {kunci: nilai untuk kunci, nilai . in counts.item() jika nilai > 1} sort_counts = dict(sorted(counts.item(), kunci . =lambda item: barang[1], reverse=True)) kembalikan urutkan_ menghitung
# Inisialisasi string pertama str1 = "Dia mengambil tiga ribu tiga ratus dan\ dan tiga puluh tiga dan dia membutuhkan lebih banyak. " result1 = count_occurence_1a(str1) cetak(hasil1)
str2 = "Beberapa kalimat di sini. Beberapa kalimat yang akan diperiksa. " results2 = count_occurence_1a(str2) cetak(hasil2) Keluaran {'and': 4, 'three': 3} {'Some': 2, 'sentence': 2} Metode 2. Menggunakan koleksi. Metode Penghitung()This method uses the collection.Counter( Berikut adalah contoh dalam kode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 impor koleksi
def count_occurence2(str1): """ Memasukkan. str1. String yang ingin kita proses, Keluaran. Kamus hitungan untuk kata yang digandakan """ kata = str1. pisah() menghitung = {} # Gunakan koleksi. Counter() menghitung kejadian dari # setiap kata dalam daftar 'kata' menghitung = koleksi. Penghitung(kata) < . paling_umum(2)# .most_common(2) # Dapatkan hasil duplikat dengan menunjukkan dengan kunci. pasangan nilai untuk # yang nilainya setidaknya dua kejadian duplikat = {kunci: nilai untuk kunci, nilai . in counts.item() jika nilai >= 2} # Mengurutkan kamus menggunakan nilai. sorted_counts = dict( diurutkan(digandakan. item(), kunci . =lambda item: barang[1], reverse=True) ) kembalikan diurutkan_ menghitung
# Inisialisasi string pertama str1 = "Dia mengambil tiga ribu tiga ratus dan\ dan tiga puluh tiga dan dia membutuhkan lebih banyak. "
# Panggil fungsi coutn_occurence2() untuk menemukan duplikat result1 = count_occurence2(str1)
# Hasil cetak cetak(hasil1)
str2 = "Beberapa kalimat di sini. Beberapa kalimat yang akan diperiksa. " results2 = count_occurence2(str2) cetak(hasil2) Keluaran {'and': 4, 'three': 3} {'Some': 2, 'sentence': 2} Berurusan dengan Tanda Baca saat Menghitung Kata DuplikatKapitalisasi dan tanda baca dalam String dapat menyebabkan metode di atas mengembalikan hasil yang tidak diharapkan Mari panggil fungsi count_occurence2() yang dibuat di Metode 2 untuk melihat kemungkinan masalah dengan tanda baca 1 2 3 4 5 6 7 str3 = "Beberapa kalimat di sini. Beberapa kalimat yang akan diperiksa. " results3 = count_occurence2(str3) cetak(hasil3)
str4 = "Aturan harus diikuti. Aturannya, dalam beberapa kasus, adalah$" results4 = count_occurence2(str4) cetak(hasil4) Keluaran {'Some': 2, 'sentence': 2} {'The': 2} Koleksi. Penghitung () yang digunakan dalam fungsi count_occurence2 () peka huruf besar-kecil, itulah sebabnya "Beberapa" dan "beberapa" diperlakukan sebagai kata yang berbeda dalam contoh pertama Dalam kasus kedua, tanda baca memengaruhi hitungan kami, mis. g. , “rules”, dan “are$” dihitung sebagai kata. Idealnya, kita mungkin ingin menghapus tanda baca agar memiliki dua kejadian untuk “rules” dan “are” Untuk menambahkan fungsionalitas tersebut, kita perlu memasukkan dua argumen lagi ke fungsi case_sensitive dan strip_punctuation, lalu tambahkan baris berikut di awal fungsi. Lihat kode lengkap setelah cuplikan ini 1 2 3 4 5 6 7 8 jika tidak peka huruf besar kecil. # Ubah string menjadi huruf kecil sehingga, misalnya, # "Beberapa" dan "beberapa" dihitung sebagai kata yang sama str1 = str1. lebih rendah() jika strip_punctuation == Benar. # Hapus tanda baca str1 = str1. terjemahkan(str. maketrans("", . , string.tanda baca))
Kode lengkap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 impor koleksi impor string
def count_occurence2_updated(str1, case_sensitive=False, strip_punctuation=True): """ Memasukkan. str1. String yang ingin kita proses, Keluaran. Kamus hitungan untuk kata yang digandakan """ jika tidak peka huruf besar kecil. # Ubah string menjadi huruf kecil sehingga, misalnya, # "Beberapa" dan "beberapa" dihitung sebagai kata yang sama str1 = str1. lebih rendah() jika strip_punctuation == Benar: # Hapus tanda baca str1 = str1. terjemahkan(str. maketrans("", . , string.tanda baca)) kata = str1. pisah() menghitung = {} # Gunakan koleksi. Counter() menghitung kejadian dari # setiap kata dalam daftar 'kata' menghitung = koleksi. Penghitung(kata) < . paling_umum(2)# .most_common(2) # Dapatkan hasil duplikat dengan menunjukkan dengan kunci. pasangan nilai untuk # yang nilainya setidaknya dua kejadian duplikat = {kunci: nilai untuk kunci, nilai . in counts.item() jika nilai >= 2} # Mengurutkan kamus menggunakan nilai. sorted_counts = dict( diurutkan(digandakan. item(), kunci . =lambda item: barang[1], reverse=True) ) return sorted_counts
str3 = "Beberapa kalimat di sini. Beberapa kalimat yang akan diperiksa. " results3a = count_occurence2_updated(str3, case_sensitive=False) cetak(hasil3a)
results3a = count_occurence2_updated(str3, case_sensitive=True) cetak(hasil3a)
str4 = "Aturan harus diikuti. Aturannya, dalam beberapa kasus, adalah$" results4a = count_occurence2_updated(str4, case_sensitive=True, strip_punctuation=True) cetak(hasil4a)
results4b = count_occurence2_updated(str4, case_sensitive=True, strip_punctuation=False) cetak(hasil4b) Keluaran {'some': 3, 'sentence': 2} {'Some': 2, 'sentence': 2} {'The': 2, 'rules': 2, 'are': 2} {'The': 2}_ KesimpulanHindari menggunakan str. count() saat menghitung kata dalam string Python. Fungsi menghitung substring, bukan kata-kata. Jika Anda ingin menghitung kata yang digandakan, gunakan dua metode yang dibahas dalam artikel Jika Anda ingin menangani kapitalisasi dan tanda baca dengan tepat, gunakan metode count_occurence2_updated() yang dibahas di Bagian sebelumnya. Fungsi ini memungkinkan Anda memutuskan apakah penghitungan harus peka huruf besar-kecil dan menghapus tanda baca Bagaimana cara mencetak kata berulang dengan Python?Python . string = "serangga hitam besar menggigit anjing hitam besar di hidung hitam besarnya"; #Mengubah string menjadi huruf kecil tali = tali. lebih rendah(); #Membagi string menjadi kata-kata menggunakan fungsi bawaan kata = tali. membelah(" "); print("Duplikat kata dalam string yang diberikan. "); untuk i dalam rentang(0, len(kata)) hitungan = 1; Bagaimana cara mencetak string yang sama beberapa kali dengan Python?Cara Mengulang String Beberapa Kali dengan Python . Metode 1. Gunakan print() dan operator aritmatika Metode 2. Gunakan For Loop dan range() Metode 3. Gunakan fungsi input() Metode 4. Gunakan itertools. ulang() Metode 5. Gunakan Pandas DataFrame Bagaimana Anda menemukan kata-kata berulang dalam sebuah string dengan Python?Pendekatannya sederhana, . Pemisahan pertama diberikan string yang dipisahkan oleh spasi Sekarang ubah daftar kata menjadi kamus menggunakan koleksi. Metode penghitung (iterator). Kamus berisi kata-kata sebagai kunci dan frekuensinya sebagai nilai Sekarang lintasi daftar kata lagi dan periksa kata mana yang memiliki frekuensi lebih besar dari 1 |