Bagaimana Anda mencetak kata-kata berulang dengan python?

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 kata berulang pertama dalam string yang diberikan
Lanjut. Tulis program Python untuk menghapus spasi dari string yang diberikan

Berapa tingkat kesulitan latihan ini?

Mudah Sedang Keras

Uji keterampilan Pemrograman Anda dengan kuis w3resource



Ikuti kami di Facebook dan Twitter untuk pembaruan terbaru.

Piton. Kiat Hari Ini

Deque

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
Lanjut. Tulis program Python untuk menemukan kata yang paling sering diulang kedua dalam string yang diberikan

Berapa tingkat kesulitan latihan ini?

Mudah Sedang Keras

Uji keterampilan Pemrograman Anda dengan kuis w3resource



Ikuti kami di Facebook dan Twitter untuk pembaruan terbaru.

Piton. Kiat Hari Ini

Deque

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 Python

The first function that may come to mind when counting words in a string is . count() method. The in this method is a substring (NOT a word) to look for in .

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 .count()

cetak(str1. hitung("beberapa")) # returns 1

 

# Wrong results from .count()

cetak(str2. hitung("beberapa")) # returns 2

. count() dalam contoh kedua mengembalikan hasil yang salah karena menghitung substring "beberapa" dalam kata "melelahkan"

Berikut adalah dua metode yang digunakan untuk mendapatkan hasil yang benar

  • Metode 1. Menggunakan kamus for-loop dan Python, dan
  • Metode 2. Menggunakan koleksi. metode Penghitung()

Metode 1. Menggunakan kamus for-loop dan Python

Metode 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() method is an integral part of counting word occurrences in a Python string. Once the counts are generated, we filter the duplicates and sort the resulting dictionary.

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 Duplikat

Kapitalisasi 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}
_

Kesimpulan

Hindari 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