Mengonversi string kamus bersarang ke kamus python

Dalam tutorial ini, Anda akan belajar tentang kamus bersarang Python – kamus yang merupakan nilai dari kamus lain. Anda akan belajar cara membuat kamus bersarang, mengakses elemennya, memodifikasinya, dan lainnya. Anda juga akan mempelajari cara menggunakan kamus bersarang untuk mengonversinya menjadi Pandas DataFrame

Di akhir tutorial ini, Anda akan belajar

  • Kamus bersarang apa yang ada di Python
  • Cara membuat kamus bersarang dengan Python
  • Cara mengakses, memodifikasi, dan menghapus elemen dalam kamus bersarang
  • Cara mengonversi kamus bersarang ke Pandas DataFrames

Daftar isi

Kamus Bersarang Python

Kamus Python adalah struktur data wadah yang menampung

# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
1 pasang informasi. Mereka dibuat dengan menggunakan kurung kurawal
# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
2, di mana nilai dapat dicari dengan mengakses kunci uniknya. Mari kita lihat contoh kamus sederhana

# A Simple Python Dictionary
user = {
    'Name': 'Nik', 
    'Profession':'datagy'
    }

Dalam kamus di atas, kami memiliki item yang disebut

# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
3. Kita dapat mengakses nilainya dengan mereferensikan kunci kamus. Katakanlah kita ingin mengakses nilai kamus untuk kunci
# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
4, kita dapat menulis

# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik

Hal yang menarik tentang kamus Python adalah kita bahkan dapat menggunakan kamus lain sebagai nilainya. Ini membawa kita ke topik utama artikel ini

Katakanlah kami ingin memiliki kamus yang berisi informasi pengguna berdasarkan ID pengguna seseorang. Mari buat kamus yang menyimpan informasi tentang banyak pengguna, dikelompokkan berdasarkan ID

# Understanding Nested Dictionaries
users = {
    1: {
        'Name': 'Nik', 
        'Profession':'datagy'
        }, 
    2: {
        'Name': 'Kate',
        'Profession': 'Government'
    }    
}
_

Dalam contoh ini, kamus kami sebelumnya disematkan ke dalam kamus baru yang lebih besar. Apa yang kami lakukan adalah membuat kamus bersarang baru. Di bagian berikut, kami membahas cara membuat kamus bersarang

Membuat Kamus Bersarang dengan Python

Di bagian ini, Anda akan mempelajari cara membuat kamus bersarang. Kamus bersarang adalah kamus yang memiliki kamus lain sebagai salah satu atau beberapa nilainya. Mari telusuri bagaimana kita bisa membuat kamus bersarang Python

Mari kita lihat sebuah contoh

# Creating a Nested Dictionary in Python
users = {}
Nik = {
        'Name': 'Nik', 
        'Profession':'datagy'
    }

Kate = {
        'Name': 'Kate',
        'Profession': 'Government'
}

users[1] = Nik
users[2] = Kate

print(users)

# Returns: {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}

Mari kita uraikan apa yang kita lakukan di sini

  1. Kami membuat kamus kosong,
    # Accessing a Dictionary Value
    print(user.get('Name')).   # Same as user['Name']
    
    # Returns: Nik
    5
  2. Kami membuat dua kamus lebih lanjut,
    # Accessing a Dictionary Value
    print(user.get('Name')).   # Same as user['Name']
    
    # Returns: Nik
    6 dan
    # Accessing a Dictionary Value
    print(user.get('Name')).   # Same as user['Name']
    
    # Returns: Nik
    7
  3. Kami kemudian menugaskan kamus ini menjadi nilai kunci masing-masing,
    # Accessing a Dictionary Value
    print(user.get('Name')).   # Same as user['Name']
    
    # Returns: Nik
    8 dan
    # Accessing a Dictionary Value
    print(user.get('Name')).   # Same as user['Name']
    
    # Returns: Nik
    9, dalam kamus
    # Accessing a Dictionary Value
    print(user.get('Name')).   # Same as user['Name']
    
    # Returns: Nik
    5

Mengakses Item di Nested Dictionaries dengan Python

Di bagian ini, Anda akan mempelajari cara mengakses item dalam kamus Python bersarang. Di bagian sebelumnya, kita menjelajahi menggunakan metode

# Understanding Nested Dictionaries
users = {
    1: {
        'Name': 'Nik', 
        'Profession':'datagy'
        }, 
    2: {
        'Name': 'Kate',
        'Profession': 'Government'
    }    
}
1 untuk mengakses item. Mari kita lihat apa yang terjadi saat kita mencoba mengakses item dalam kamus bersarang

# Accessing an Item in a Nested Dictionary
users = {
    1: {'Name': 'Nik', 'Profession': 'datagy'}, 
    2: {'Name': 'Kate', 'Profession': 'Government'}
    }

print(users.get(1))

# Returns: {'Name': 'Nik', 'Profession': 'datagy'}

Kita dapat melihat bahwa ini mengembalikan kamus. Karena kamus dikembalikan, kami dapat mengakses item di kamus yang dikembalikan

Katakanlah kami ingin mengakses

# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
_4 pengguna
# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
8, kami dapat menulis yang berikut ini

# Accessing Nested Items in Python Dictionaries
users = {
    1: {'Name': 'Nik', 'Profession': 'datagy'}, 
    2: {'Name': 'Kate', 'Profession': 'Government'}
    }

print(users.get(1).get('Name'))

# Returns: Nik 

Kami dapat memanggil metode

# Understanding Nested Dictionaries
users = {
    1: {
        'Name': 'Nik', 
        'Profession':'datagy'
        }, 
    2: {
        'Name': 'Kate',
        'Profession': 'Government'
    }    
}
1 beberapa kali karena kami mengakses kamus di dalam kamus. Di bagian selanjutnya, Anda akan mempelajari cara mengubah item dalam kamus bertingkat

Memodifikasi Item di Nested Dictionaries dengan Python

Di bagian ini, Anda akan mempelajari cara mengubah item dalam kamus bersarang. Untuk memodifikasi item, kami menggunakan proses yang sama seperti yang kami lakukan untuk menyetel item baru di kamus. Dalam hal ini, kita hanya perlu menavigasi sedikit lebih jauh ke bawah, ke kunci kamus bersarang

Misalkan kita ingin mengubah profesi untuk pengguna 2 menjadi

# Understanding Nested Dictionaries
users = {
    1: {
        'Name': 'Nik', 
        'Profession':'datagy'
        }, 
    2: {
        'Name': 'Kate',
        'Profession': 'Government'
    }    
}
5. Kita kemudian bisa menulis

# Modifying Items in a Nested Dictionary
users = {
    1: {'Name': 'Nik', 'Profession': 'datagy'}, 
    2: {'Name': 'Kate', 'Profession': 'Government'}
    }

users[2]['Profession'] = 'Habitat for Humanity'
print(users)

# Returns: 
# {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Habitat for Humanity'}}

Dalam hal ini, kami dapat mengakses nilai kunci melalui penugasan langsung. Jika kunci itu sebelumnya tidak ada, maka kunci (dan nilainya) akan dibuat

Menghapus Item di Nested Dictionaries dengan Python

Kamus Python menggunakan kata kunci

# Understanding Nested Dictionaries
users = {
    1: {
        'Name': 'Nik', 
        'Profession':'datagy'
        }, 
    2: {
        'Name': 'Kate',
        'Profession': 'Government'
    }    
}
_6 untuk menghapus pasangan
# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
1 dalam kamus. Untuk melakukan ini dalam kamus bersarang, kita hanya perlu masuk lebih jauh ke dalam kamus. Mari kita lihat bagaimana kita dapat menghapus kunci
# Understanding Nested Dictionaries
users = {
    1: {
        'Name': 'Nik', 
        'Profession':'datagy'
        }, 
    2: {
        'Name': 'Kate',
        'Profession': 'Government'
    }    
}
8 dari kamus
# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
8

# Deleting an item from a nested dictionary
users = {
    1: {'Name': 'Nik', 'Profession': 'datagy'}, 
    2: {'Name': 'Kate', 'Profession': 'Government'}
    }

del users[1]['Profession']

print(users)

# Returns: 
# {1: {'Name': 'Nik'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}

Demikian pula, kita dapat menghapus seluruh kamus bersarang menggunakan metode yang sama. Karena kamus bersarang sebenarnya hanya pasangan

# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
1 dalam kamus kita yang lebih luas, metode yang sama berlaku. Mari kita hapus seluruh kamus pertama
# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
8

# Deleting an entire nested dictionary
users = {
    1: {'Name': 'Nik', 'Profession': 'datagy'}, 
    2: {'Name': 'Kate', 'Profession': 'Government'}
    }

del users[1]

print(users)

# Returns: 
# {2: {'Name': 'Kate', 'Profession': 'Government'}}

Di bagian selanjutnya, Anda akan mempelajari cara melakukan iterasi melalui kamus bersarang dengan Python

Iterasi Melalui Kamus Bersarang dengan Python

Di bagian ini, Anda akan mempelajari cara melakukan iterasi melalui kamus bersarang. Ini dapat membantu saat Anda ingin mencetak nilai dalam kamus. Kita dapat membangun fungsi rekursif untuk menangani ini. Mari kita lihat seperti apa ini

# Iterating through nested dictionaries recursively
users = {
    1: {'Name': 'Nik', 'Profession': 'datagy'}, 
    2: {'Name': 'Kate', 'Profession': 'Government'}
    }

def iterate_dict(dict_to_iterate):
    for key, value in dict_to_iterate.items():
        if type(value) == dict:
            print(key)
            iterate_dict(value)
        else:
            print(key + ":" + value)

iterate_dict(users)

# Returns:
# 1
# Name:Nik
# Profession:datagy
# 2
# Name:Kate
# Profession:Government

Mengonversi Kamus Python Bersarang menjadi Pandas DataFrame

Di bagian terakhir ini, Anda akan belajar cara mengubah kamus bersarang menjadi Pandas DataFrame. Kami cukup meneruskan kamus bersarang ke konstruktor

# Creating a Nested Dictionary in Python
users = {}
Nik = {
        'Name': 'Nik', 
        'Profession':'datagy'
    }

Kate = {
        'Name': 'Kate',
        'Profession': 'Government'
}

users[1] = Nik
users[2] = Kate

print(users)

# Returns: {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}
2. Namun, Panda akan membaca DataFrame dengan kunci sebagai indeksnya

Untuk mengatasinya, kita dapat mengubah urutan DataFrame menggunakan metode

# Creating a Nested Dictionary in Python
users = {}
Nik = {
        'Name': 'Nik', 
        'Profession':'datagy'
    }

Kate = {
        'Name': 'Kate',
        'Profession': 'Government'
}

users[1] = Nik
users[2] = Kate

print(users)

# Returns: {1: {'Name': 'Nik', 'Profession': 'datagy'}, 2: {'Name': 'Kate', 'Profession': 'Government'}}
3

# Accessing a Dictionary Value
print(user.get('Name')).   # Same as user['Name']

# Returns: Nik
0

Kesimpulan

Dalam tutorial ini, Anda belajar tentang kamus bersarang di Python. Anda telah mempelajari apa itu kamus bersarang. Kemudian Anda belajar cara mengakses, memodifikasi, dan menghapus item mereka. Terakhir, Anda belajar cara mengulangi kamus bersarang serta cara membacanya ke dalam Pandas DataFrames

Bagaimana cara mengubah kamus bersarang menjadi kamus dengan Python?

Menggunakan pendekatan rekursif . Kami menggunakan isinstance untuk memeriksa apakah item berikutnya itu sendiri adalah kamus dan kemudian meneruskannya melalui panggilan rekursif jika itu juga kamus.

Bagaimana cara mengubah kamus string menjadi kamus dengan Python?

Mari kita bahas cara-cara tertentu untuk melakukannya. .
Metode #1. Menggunakan json. beban()
Kompleksitas waktu. O(1) karena ini adalah panggilan fungsi tunggal ke json. .
Metode #2. Menggunakan ast. literal_eval()
Metode #3. Menggunakan eval() Metode di atas juga dapat digunakan untuk melakukan konversi serupa

Bagaimana Anda meratakan kamus bersarang dengan Python?

Pada dasarnya dengan cara yang sama Anda akan meratakan daftar bersarang, Anda hanya perlu melakukan pekerjaan ekstra untuk mengulangi dict dengan kunci/nilai, membuat kunci baru untuk kamus baru Anda dan . Untuk Python >= 3. 3, ubah impor menjadi dari koleksi. . For Python >= 3.3, change the import to from collections.

Bagaimana Anda mengubah string kamus menjadi kamus?

Untuk mengonversi string ke kamus, kita harus memastikan bahwa string berisi representasi kamus yang valid. Ini dapat dilakukan dengan fungsi eval() . Modul Pohon Sintaks Abstrak (ast) dari Python memiliki metode literal_eval() yang dengan aman mengevaluasi struktur literal Python yang valid.