Jika pernyataan dalam kamus python

Anda mungkin sudah menguasai kamus dengan Python dan belajar banyak tentang pemahaman daftar. Sekarang saatnya menggabungkan keterampilan ini dan mempelajari sesuatu yang baru. pemahaman kamus dengan Python

Apa itu Pemahaman Kamus dengan Python?

Sebelum itu, mari kita ingatkan diri kita apa itu pemahaman dalam Python. Ini berarti menerapkan jenis operasi tertentu pada setiap elemen iterator (seperti daftar, kamus, atau tupel). Kita tentu saja dapat membuat logika ini lebih kompleks dengan memasukkan, misalnya, pernyataan bersyarat

Langsung saja kita buat contoh sederhananya. Kami akan membuat kamus, berisi usia beberapa orang

d = {"Alex": 29, "Katherine": 24, "Jonathan": 22}
print(d)
    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}

Bagaimana jika kita ingin menambahkan satu tahun untuk setiap umur dan menyimpan hasilnya di kamus baru?

# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}

Namun, loop

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
_9 dapat ditulis ulang hanya dalam satu baris menggunakan pemahaman kamus

# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}

Apakah itu terlihat lebih baik? . Mari kita pecahkan menjadi beberapa bagian

Kami memiliki nama sebagai kunci dan usia sebagai nilai. Kamus baru kita harus memiliki struktur yang sama dengan yang lama,

# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
1. Di sini, namanya tidak berubah tetapi usianya. Kami membuat kamus baru
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
2 dengan membuka kurung kurawal, dan di dalam menulis
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
3, diikuti dengan titik dua,
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
4, dan
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
5. Sekarang berhenti, dan pikirkan dari mana
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
_3 dan
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
5 berasal, dan bagaimana kita harus memodifikasi
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
5. Mereka berasal dari kamus asli, jadi kita dapat mengulanginya menggunakan metode
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
9 dan kata kunci
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 di mana variabel pertama adalah kunci, dan yang kedua adalah nilai. Jadi, kami menulis loop
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
_9 ini di dalam tanda kurung. Sekarang, satu-satunya yang tersisa adalah mengubah nilai
# Add one year to each age in the dictionary using comprehension
new_d = {name: age + 1 for name, age in d.items()}

print(new_d)
5 dari kamus baru dengan menambahkan 1

Ini adalah proses berpikir saya yang biasa ketika saya menggunakan pemahaman kamus. Contoh ini sangat sederhana dan dengan pengalaman yang cukup, Anda dapat melakukannya hampir secara otomatis, tetapi setelah kode menjadi sedikit lebih rumit, ada baiknya untuk memikirkan dengan tepat seperti apa hasil akhir Anda dan bagaimana Anda dapat mencapainya

Selain itu, adalah ide yang bagus untuk menulis

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
_9 loop sebelumnya, pastikan itu berperilaku seperti yang Anda desain, dan kemudian tulis ulang menggunakan pemahaman kamus

Contoh Lebih Realistis

Oke, cukup dengan contoh sederhana yang tidak realistis. Dalam kehidupan nyata, kita mungkin perlu membuat beberapa kamus acak untuk tujuan pengujian atau hanya karena kita memerlukan beberapa keacakan untuk teknik statistik, tetapi sekarang kita akan menganalisis kumpulan data dunia nyata dari Kaggle dan menerapkan teknik kamus Python ini. Perhatikan bahwa kumpulan data asli telah dimodifikasi dengan menghapus string

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
4 dari kolom
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
5

Kami akan menggunakan kumpulan data yang berisi video game teratas di Metacritic pada tahun 1995-2021

from csv import reader

# Open and read the dataset
all_games = open("all_games.csv")
all_games = reader(all_games)
all_games = list(all_games)

Kumpulan data ini berisi informasi berikut

  1. Nama
  2. Peron
  3. Tanggal rilis
  4. Ringkasan cerita
  5. Skor Meta
  6. Skor Pengguna

Katakanlah, kami tertarik untuk membuat kamus dengan nama sebagai kunci dan platform sebagai nilainya

________24___25_______

Perhatikan bahwa setiap platform memiliki spasi sebelum namanya, jadi mari kita hapus. Itu bisa dilakukan dengan

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
_9 loop atau pemahaman kamus

# Using a for loop
for name, platform in platform_dict.items():
    platform_dict[name] = platform.strip()

Di atas adalah salah satu cara menghilangkan spasi dari nilai. Kami menggunakan metode yang menghapus karakter awal dan akhir yang kami tentukan atau spasi putih jika tidak ada argumen yang diberikan. Sekarang coba tulis ulang kode menggunakan pemahaman kamus sebelum membaca jawabannya

    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
_0

Itu adalah cara yang jauh lebih bagus untuk menulis kode yang sama

Terkadang kita mungkin perlu mengekstrak setiap kolom dari kumpulan data, mengonversinya menjadi daftar, lalu menggunakan setiap elemen dari satu daftar sebagai kunci kamus dan setiap elemen dari daftar lain sebagai nilai kamus. Proses ini akan memungkinkan cara langsung untuk mengakses elemen kamus, memfilter, dan memanipulasinya. Ini Apakah mungkin?

    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
_1

Sekarang kita memiliki semua daftar yang berbeda, kita dapat membuat kamus dari dua di antaranya. Kami sudah memiliki kamus platform, tetapi sekarang mari kita ekstrak tahun rilisnya (bukan tanggalnya. ). Kami akan menggunakan fungsi yang memungkinkan iterasi pada beberapa iterable secara bersamaan

    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
2
    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
3

Sekarang coba lakukan hal yang sama tetapi dengan pemahaman kamus sebelum melihat jawabannya

    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
_4
    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
5

Seperti yang bisa kita lihat, pemahaman kamus dengan Python memungkinkan kode yang lebih pendek dan tidak terlalu rumit. Perhatikan bahwa kami menggunakan pemotongan string (mis. e. ,

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
_9) untuk mengekstrak hanya tahun dari tanggal

Pernyataan Bersyarat dalam Pemahaman Kamus

Sekarang Anda harus dapat memahami logika dasar pemahaman kamus dengan Python. Jadi, mari kita sedikit memperumit masalah

Kita dapat menggunakan pernyataan bersyarat untuk memfilter beberapa informasi sebelum membuat kamus. Mari buat ulang kamus video game yang dirilis setelah 2014

    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
6
    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
7

Dalam cuplikan kode di atas, kami menggunakan kembali kode yang sama tetapi menambahkan pernyataan bersyarat

from csv import reader

# Open and read the dataset
all_games = open("all_games.csv")
all_games = reader(all_games)
all_games = list(all_games)
0 untuk menerapkan filter. Kami ingin memfilter berdasarkan nilai sehingga kami mengekstrak tahun, mengonversi angka menjadi bilangan bulat, lalu membandingkannya dengan bilangan bulat 2014. Jika tahun sebelum 2014, maka elemen kamus tersebut tidak dimasukkan ke dalam kamus

Kita tentu saja dapat membuat logika menjadi lebih rumit dengan memperkenalkan operator logika (

from csv import reader

# Open and read the dataset
all_games = open("all_games.csv")
all_games = reader(all_games)
all_games = list(all_games)
1,
from csv import reader

# Open and read the dataset
all_games = open("all_games.csv")
all_games = reader(all_games)
all_games = list(all_games)
2,
from csv import reader

# Open and read the dataset
all_games = open("all_games.csv")
all_games = reader(all_games)
all_games = list(all_games)
3). Misalnya, jika kita ingin semua game yang dirilis antara 2012 dan 2018 (termasuk keduanya), maka kodenya adalah sebagai berikut

    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
8
    {'Alex': 29, 'Katherine': 24, 'Jonathan': 22}
9

Pada titik ini, kode menjadi agak rumit untuk dipahami jadi jika kita membutuhkan operator logis tambahan, lebih baik menggunakan loop standar

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9

Mari buat contoh lain, dan filter berdasarkan skor meta yang lebih rendah dari 25 atau lebih tinggi dari 97

# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
0
# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
1

Untuk berlatih, buat kamus dengan game dengan skor pengguna antara 6 dan 8 (inklusif). Pastikan juga bahwa nilai dalam kamus adalah

from csv import reader

# Open and read the dataset
all_games = open("all_games.csv")
all_games = reader(all_games)
all_games = list(all_games)
5 angka

Gunakan Kasus

Empat bagian berikutnya akan mendemonstrasikan berbagai kasus penggunaan pemahaman kamus

  1. Cara menggunakan pemahaman dalam kamus bersarang
  2. Cara mengurutkan kamus
  3. Cara meratakan kamus
  4. Cara menghitung frekuensi kata dalam sebuah string

Pemahaman Kamus Bersarang

Terkadang, kita perlu bekerja dengan kamus bersarang, mis. e. , saat kita memiliki kamus di dalam kamus lain. Pertama-tama, buat kamus bersarang

# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
2
# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
3

Ada cara untuk menulis ulang loop

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 di atas menggunakan pemahaman kamus. Lakukan untuk latihan

Agar tidak memperumit masalah, kami hanya akan menggunakan platform di nilai batin. Sangat sering, ini adalah format data yang dikirimkan kepada kami melalui API

# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
4
# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
5

Katakanlah kita ingin mengekstrak tahun dan mengubahnya menjadi bilangan bulat sambil mempertahankan format kamus bersarang yang sama. Salah satu cara melakukannya adalah dengan menggunakan ________2______9 loop

# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
6
# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
7

Tentu saja, dimungkinkan untuk menulis ulang

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 loop di atas menggunakan pemahaman kamus. Untuk menghindari kesalahan, sel kode di bawah ini akan membuat ulang daftar dan kamus bersarang sebelum menjalankan pemahaman kamus

# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
8
# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
9
# Dictionary to store new ages
new_d = {}

# Add one year to each age in the dictionary
for name, age in d.items(): # .items() method displays dictionary keys and values as a list of tuple pairs (name and age in this case)
    new_d[name] = age + 1
print(new_d)
7

Loop

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
_9 di sini adalah loop
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 kedua, sedangkan loop
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 dalam adalah loop
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 pertama. Kode menjadi cukup rumit pada saat ini, jadi dalam banyak kasus, tidak ada gunanya terus mencoba menggunakan pemahaman kamus. Ingatlah bahwa salah satunya adalah keterbacaan

Menyortir Kamus dengan Pemahaman

Penggunaan lain dari pemahaman kamus di Python adalah penyortiran kamus. Misalnya, katakanlah kita ingin mengurutkan kamus dengan judul game dan tahun demi tahun dari tahun pertama hingga tahun terakhir? . )

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
1
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
2

Kami menggunakan fungsi

# Dictionary to store video game platforms
platform_dict = {}

# Create dictionary of platforms
for game in all_games[1:]:  # Do not include the header
    name = game[0]
    platform = game[1]
    platform_dict[name] = platform

# Print five items of the dictionary (need to transform it into a list before)
print(list(platform_dict.items())[:5])
_5 yang menerima argumen
# Dictionary to store video game platforms
platform_dict = {}

# Create dictionary of platforms
for game in all_games[1:]:  # Do not include the header
    name = game[0]
    platform = game[1]
    platform_dict[name] = platform

# Print five items of the dictionary (need to transform it into a list before)
print(list(platform_dict.items())[:5])
6 bahwa kami perlu memberi tahu fungsi elemen mana yang ingin kami urutkan. Dalam hal ini, kami memiliki dua opsi. urutkan pada kunci atau nilai kamus. Nilai berada di urutan kedua, jadi indeksnya harus 1, sedangkan untuk kunci adalah 0. Kunci biasanya diberikan ke fungsi
# Dictionary to store video game platforms
platform_dict = {}

# Create dictionary of platforms
for game in all_games[1:]:  # Do not include the header
    name = game[0]
    platform = game[1]
    platform_dict[name] = platform

# Print five items of the dictionary (need to transform it into a list before)
print(list(platform_dict.items())[:5])
_7 yang merupakan fungsi anonim yang sering digunakan dalam Python. Apakah menurut Anda mungkin untuk menerapkan
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 loop untuk mencapai hasil yang sama?

Meratakan Daftar Kamus

Terkadang kami menghadapi daftar kamus, dan kami menginginkan satu kamus tunggal. Itu juga bisa dilakukan dengan pemahaman kamus

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
3
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
4

Yang pasti, kita juga bisa menambahkan beberapa pernyataan bersyarat dalam kode di atas seperti yang kita lakukan untuk pemahaman kamus sebelumnya. Misalnya, di bawah ini, kami memfilter semua tahun yang bukan 1996

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
5
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
6

Apakah Anda dapat membuat ulang pemahaman kamus di atas dengan

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 loop?

Frekuensi Kata

Salah satu langkah dalam Natural Language Processing adalah menghitung kemunculan kata dalam sebuah teks. Cara alami untuk merepresentasikan data ini adalah dengan menggunakan kamus, di mana kuncinya adalah kata, dan nilainya adalah berapa kali kata ini muncul dalam teks. Ini juga merupakan pekerjaan untuk memahami kamus

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
7
    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
8

Kami membutuhkan tiga baris kode jika kami menggunakan

    {'Alex': 30, 'Katherine': 25, 'Jonathan': 23}
9 loop (tetapi coba buat ulang)

Membungkus

Ada begitu banyak cara kita dapat mengeksploitasi pemahaman kamus dengan Python untuk memperbaiki kode, sehingga akan membutuhkan terlalu banyak kertas untuk mencantumkan semuanya. Saya sarankan Anda mulai menggunakannya langsung setiap kali Anda melihat kemungkinannya (tetapi tetap ingat keterbacaannya) dan baca kode orang lain untuk mendapatkan ide tentang kasus penggunaan kode tersebut

Pada titik tertentu, akan sangat wajar untuk langsung menulis pemahaman kamus tetapi untuk mencapai titik ini Anda harus menulis kode, dan mengerjakan proyek. Membaca tutorial dan melakukan latihan kode sangat membantu untuk memahami konsepnya, tetapi proyek adalah pengubah permainan nyata dalam ilmu data atau karier pengkodean Anda

Dalam tutorial ini, kita telah belajar

  • Apa pemahaman kamus dengan Python
  • Cara membuat kamus menggunakan teknik ini
  • Cara menggunakan pernyataan bersyarat dalam pemahaman kamus
  • Apa itu pemahaman kamus bersarang
  • Cara mengurutkan kamus
  • Cara meratakan kamus
  • Dan bagaimana cara menghitung kemunculan kata dalam sebuah string

Saya harap Anda telah belajar sesuatu yang baru hari ini. Jangan ragu untuk terhubung dengan saya di LinkedIn atau GitHub. Selamat mengkode

tutorial ilmu data tutorial python

Jika pernyataan dalam kamus python

Tentang Penulis

Artur Sannikov

Saya seorang mahasiswa Biologi Molekuler di Universitas Padua, Italia yang tertarik dengan bioinformatika dan analisis data

Bisakah kita menggunakan pernyataan if untuk kamus dengan Python?

Periksa apakah ada nilai dalam kamus menggunakan fungsi any() . Ini adalah metode dimana masalah ini dapat diselesaikan. Dalam hal ini, kami mengulangi seluruh kamus menggunakan pemahaman daftar dan memeriksa nilai setiap kunci untuk kecocokan menggunakan pernyataan bersyarat.

Bisakah Anda menggunakan == pada kamus dengan Python?

Menurut dokumen python, Anda memang dapat menggunakan operator == pada kamus .

Bagaimana Anda memeriksa apakah suatu nilai ada dalam nilai kamus dengan Python?

Periksa apakah ada nilai dalam kamus. dalam operator, values() Untuk memeriksa apakah ada nilai dalam kamus, i. e. , jika kamus memiliki/berisi nilai, gunakan operator in dan metode values(). Gunakan not in untuk memeriksa apakah suatu nilai tidak ada dalam kamus.

Bagaimana cara memeriksa apakah kunci dan nilai ada di kamus Python?

Periksa Jika Kunci Ada menggunakan metode Inbuilt keys() . Dengan kunci metode bawaan (), gunakan pernyataan if dengan operator 'in' untuk memeriksa apakah kunci ada di kamus atau tidak.