Python membaca beberapa kamus dari file

Salah satu penggunaan kamus yang umum adalah menghitung kemunculan kata dalam file dengan beberapa teks tertulis. Mari kita mulai dengan file kata-kata yang sangat sederhana yang diambil dari teks Romeo dan Juliet

Untuk rangkaian contoh pertama, kami akan menggunakan versi teks yang dipersingkat dan disederhanakan tanpa tanda baca. Nanti kita akan bekerja dengan teks adegan dengan menyertakan tanda baca

But soft what light through yonder window breaks
It is the east and Juliet is the sun
Arise fair sun and kill the envious moon
Who is already sick and pale with grief

Kami akan menulis program Python untuk membaca baris file, memecah setiap baris menjadi daftar kata, dan kemudian mengulang setiap kata dalam baris dan menghitung setiap kata menggunakan kamus

Anda akan melihat bahwa kita memiliki dua for loop. Loop luar membaca baris file dan loop dalam mengulangi setiap kata pada baris tertentu. Ini adalah contoh pola yang disebut loop bersarang karena salah satu loop adalah loop luar dan loop lainnya adalah loop dalam

Karena loop dalam mengeksekusi semua iterasinya setiap kali loop luar membuat satu iterasi, kami menganggap loop dalam sebagai iterasi "lebih cepat" dan loop luar sebagai iterasi lebih lambat

Kombinasi dari dua perulangan bersarang memastikan bahwa kita akan menghitung setiap kata pada setiap baris dari file masukan

Q-2. A(n) _________ adalah pola yang terdiri dari dua loop for, di mana salah satu loop adalah loop luar dan yang lainnya adalah loop dalam

Dalam pernyataan else_ kami, kami menggunakan alternatif yang lebih ringkas untuk menambahkan variabel. counts[word] += 1_ setara dengan counts[word] = counts[word] + 1. Salah satu metode dapat digunakan untuk mengubah nilai variabel dengan jumlah yang diinginkan. Alternatif serupa tersedia untuk -=, *=, dan /=

    Q-3. Manakah dari jawaban ini (jika ada) yang akan menambah nilai kunci dalam hitungan kamus sebesar 1?

  • jumlah[kata] = jumlah[kata] + 1
  • Hampir. coba lagi
  • hitungan[kata] += 1
  • Hampir. coba lagi
  • Tak satu pun dari opsi ini menambah nilai kunci sebesar 1
  • Coba lagi. Ingat Anda dapat menambah dengan menambahkan 1 atau melakukan += 1
  • Baik a dan b menaikkan nilai kunci sebesar 1
  • Benar. Kedua metode ini adalah cara yang benar untuk menambah nilai kunci sebesar 1

Saat kami menjalankan program, kami melihat dump mentah dari semua hitungan dalam urutan hash yang tidak disortir. (romeo. File txt tersedia di www. py4e. com/code3/romeo. txt)

python count1.py
Enter the file name: romeo.txt
{'and': 3, 'envious': 1, 'already': 1, 'fair': 1,
'is': 3, 'through': 1, 'pale': 1, 'yonder': 1,
'what': 1, 'sun': 2, 'Who': 1, 'But': 1, 'moon': 1,
'window': 1, 'sick': 1, 'east': 1, 'breaks': 1,
'grief': 1, 'with': 1, 'light': 1, 'It': 1, 'Arise': 1,
'kill': 1, 'the': 3, 'soft': 1, 'Juliet': 1}
_

Agak merepotkan untuk melihat-lihat kamus untuk menemukan kata-kata yang paling umum dan jumlahnya, jadi kita perlu menambahkan beberapa kode Python lagi untuk mendapatkan keluaran yang akan lebih membantu

Bangun blok kode untuk membaca baris-baris file, pisahkan setiap baris menjadi daftar kata, lalu lewati setiap kata dalam baris dan hitung setiap kata menggunakan kamus

Di Python, kamus adalah struktur data yang berisi elemen dalam bentuk pasangan kunci-nilai di mana kunci digunakan untuk mengakses nilai kamus. Kamus Python tidak terurut dan dapat berubah i. e. elemen kamus dapat diubah

Pada artikel ini, kita akan mengeksplorasi lima cara berbeda untuk menggabungkan dua kamus atau lebih, bersama dengan cara kasar

Untuk artikel ini, mari kita buat dua kamus

d3 = d1.copy()
for key, value in d2.items():
d3[key] = value

print(d3)
8 dan
d3 = d1.copy()
for key, value in d2.items():
d3[key] = value

print(d3)
9 yang ingin kita gabungkan menjadi satu kamus

d1 = {'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.'}

d2 = {'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
_

Cara Kasar

Anda dapat menggabungkan dua kamus dengan mengulangi pasangan kunci-nilai dari kamus kedua dengan yang pertama

d3 = d1.copy()
for key, value in d2.items():
d3[key] = value

print(d3)
Output:

{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}

Sekarang, mari kita lihat cara yang lebih bersih dan lebih baik untuk menggabungkan kamus

Metode 1. Menggunakan metode pembaruan

Kamus memiliki metode yang menggabungkan kamus dengan item dari kamus lain di tempat dan menimpa kunci yang ada

d4 = d1.copy()
d4.update(d2)

print(d4)
_
Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}

Metode pembaruan memodifikasi kamus saat ini. Jadi, Anda mungkin ingin membuat salinan kamus sebelum mengoperasikan kamus

Metode 2. Menggunakan operator pembongkaran

Kita dapat menggabungkan kamus dalam satu baris hanya dengan menggunakan operator unpacking (**)

d5 = {**d1, **d2}

print(d5)
Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}

Kami juga dapat menggabungkan beberapa kamus menggunakan metode ini

{**dict1, **dict2, **dict3}

Metode 3. Menggunakan koleksi. Peta Rantai

Ini mungkin metode yang paling tidak dikenal untuk menggabungkan kamus
kelas dari modul Koleksi mengelompokkan beberapa kamus dalam satu tampilan

from collections import ChainMap
d6 = ChainMap(d1, d2)

print(d6)
Output:
ChainMap({'Canada': 'Ottawa',
'India': 'Delhi',
'United States': 'Washington D. C.'},
{'France': 'Paris',
'Malaysia': 'Kuala Lumpur'})

Metode ini mengembalikan objek dari kelas ChainMap. Kita masih bisa menggunakan objek ini seperti kita akan menggunakan kamus lainnya. e. g.

Output:

{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
0 akan mengembalikan
Output:

{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
1

Namun, dalam kasus kunci yang sama di dua kamus, metode ini akan mengembalikan nilai kamus pertama, tidak seperti metode lain yang mengembalikan nilai dari kamus kedua.

Bagaimana cara membaca banyak kamus dari sebuah file dengan Python?

Kamus dengan Python adalah kumpulan tempat setiap nilai dipetakan ke kunci. .
Mengimpor modul acar
Membuka file dalam mode baca biner
Memuat data ke dalam variabel menggunakan metode dump modul pickle

Bagaimana cara membaca kamus dengan Python dari file?

Kita dapat membaca kamus dari file dengan 3 cara. .
Menggunakan json. beban() metode. Mengubah string kamus yang valid menjadi bentuk json
Menggunakan ast. metode literal_eval(). Berfungsi lebih aman daripada fungsi eval dan dapat digunakan untuk interkonversi semua tipe data selain kamus juga
Menggunakan acar

Bagaimana cara menggunakan beberapa kamus dengan Python?

Kita dapat menggabungkan dua kamus dengan python menggunakan pemahaman kamus . Di sini, kami juga menggunakan perulangan for untuk mengulangi item kamus dan menggabungkannya untuk mendapatkan hasil akhir. Jika kedua kamus memiliki kunci yang sama, maka hasil akhir menggunakan metode ini akan berisi nilai kamus kedua.

Bagaimana Anda menggabungkan 3 kamus?

Jika Anda ingin menggabungkan tiga kamus, Anda harus menggabungkan dua yang pertama terlebih dahulu, lalu menggabungkan yang ketiga dengan kamus yang dimodifikasi .