Kunci dan nilai kamus flip python

Membalikkan kamus berbeda dari membalikkan daftar, ini berarti membalikkan atau mengganti elemen kunci dan nilai kamus, pada dasarnya menukarnya untuk tujuan apa pun yang mungkin digunakan pengembang untuk itu

Gunakan dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')]) 3 untuk Membalik Kamus dengan Python

Kamus Python memiliki fungsi bawaan yang disebut

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
3 yang mengembalikan objek iterable yang akan menampilkan pasangan nilai kunci kamus dalam bentuk tupel

Misalnya, nyatakan kamus kategori acak dan cetak menggunakan

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
3

dct = {
  "Animal": "Dog",
  "Fruit": "Pear",
  "Vegetable": "Cabbage",
  "Tree": "Maple",
  "Flower": "Daisy"
}

print(dct.items())

Keluaran

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])

Mencetak kamus menggunakan

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
3 akan menampilkan daftar nilai tuple yang dapat diubah yang dapat kita manipulasi menggunakan
dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
7 loop untuk kamus

Balikkan pasangan kunci-nilai dengan mengulang hasil

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
3 dan mengganti kunci dan nilainya

dct = {v: k for k, v in dct.items()}
print(dct)
_

The

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
9 dan
dct = {v: k for k, v in dct.items()}
print(dct)
0 di
dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
7 masing-masing mewakili kunci dan nilai.
dct = {v: k for k, v in dct.items()}
print(dct)
_2 adalah placeholder untuk kunci dan nilai di setiap iterasi, meskipun kami menetapkan nilai sebelumnya
dct = {v: k for k, v in dct.items()}
print(dct)
0 sebagai kunci baru dan kunci sebelumnya
dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
9 sebagai nilai baru

Keluaran

{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}

Elemen kunci dan nilai sekarang dibalik dalam output

Kunci Bernilai Sama dalam Kamus Terbalik

Contoh skenario lain saat membalik kamus adalah jika ada beberapa kunci atau nilai dengan nilai yang sama. Ini adalah skenario yang lebih mungkin untuk membalikkan kamus

Misalnya, kamus hewan favorit orang

favAnimal = {
  "John": "Dog",
  "Jane": "Cat",
  "Jerome": "Lion",
  "Jenny": "Dog",
  "Jared": "Giraffe",
  "James": "Dog"
}

Jika kamus dibalik menggunakan kode di atas, hasilnya tidak akan seperti yang Anda harapkan

favAnimal = {v: k for k, v in favAnimal.items()}
print(favAnimal)

Keluaran

{'Dog': 'James', 'Cat': 'Jane', 'Lion': 'Jerome', 'Giraffe': 'Jared'}

Di sini, 2 elemen dari kamus asli hilang karena setiap kali kunci atau nilai berulang dalam loop, catatan yang ada akan ditimpa

Kamus berisi 3 orang dengan pasangan nilai

dct = {v: k for k, v in dct.items()}
print(dct)
5 tetapi hanya
dct = {v: k for k, v in dct.items()}
print(dct)
_6 yang disalin karena ini adalah catatan terakhir dengan nilai
dct = {v: k for k, v in dct.items()}
print(dct)
5 dan telah menimpa 2 item kamus lainnya

Untuk mengatasi masalah ini, kita harus menyimpan nilai dalam daftar sehingga nilai tersebut akan ditetapkan ke satu kunci

Contoh kode lengkap

favAnimal = {
  "John": "Dog",
  "Jane": "Cat",
  "Jerome": "Lion",
  "Jenny": "Dog",
  "Jared": "Giraffe",
  "James": "Dog"
}

favAnimal = {v: k for k, v in favAnimal.items()}

print(favAnimal)

Gunakan dct = {v: k for k, v in dct.items()} print(dct) _8 untuk Membalik Kamus dengan Python

Modul

dct = {v: k for k, v in dct.items()}
print(dct)
_9 memiliki fungsi
{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
0 yang dapat memanipulasi nilai dalam kamus dengan Python

{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
0 terutama digunakan untuk membuat nilai default dari kunci yang tidak ada. Jika Anda mengakses kunci yang tidak ada, kunci tersebut dapat mendeklarasikan nilai default untuknya, meskipun kunci tersebut tidak ada

Fungsi ini berguna untuk kasus kami karena kami ingin memberi contoh kamus baru dengan nilai yang merupakan tipe data daftar

Menggunakan contoh yang sama

{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
2, balikkan kamus dan ubah nilainya menjadi daftar

Pertama, inisialisasi kamus baru menggunakan

{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
0

from collections import defaultdict

favAnimal_inverted = defaultdict(list)

Selanjutnya, gunakan pemahaman daftar untuk inversi dan simpan nilai terbalik ke dalam kamus baru

{favAnimal_inverted[v].append(k) for k, v in favAnimal.items()}

Terakhir, karena

{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
_0 membuat semacam subkelas kamus, konversi ulang ke tipe kamus dasar dengan membungkusnya dalam
{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
5

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
0

Keluaran

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
_1

John, Jenny, dan James sekarang berada di daftar yang sama dengan kunci

dct = {v: k for k, v in dct.items()}
print(dct)
5 alih-alih elemen lain ditimpa oleh elemen terakhir yang memiliki
dct = {v: k for k, v in dct.items()}
print(dct)
5 sebagai nilainya

Contoh kode lengkap

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
_2

Singkatnya, gunakan

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])
3 untuk mengulang kamus dan membalikkan kunci dan nilai. Jika kebetulan kumpulan data Anda cenderung memiliki duplikat, pastikan untuk mengonversi nilai menjadi daftar dengan menggunakan
{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}
0 dan memanipulasinya sedemikian rupa sehingga nilai kamus akan ditambahkan ke dalam daftar alih-alih mengganti nilai yang ada

Bagaimana Anda membalikkan kunci dalam kamus Python?

Metode #1. Menggunakan OrderedDict() + dibalik() + item() .

Apakah mungkin untuk membalikkan kamus dengan Python?

1) Menggunakan metode OrderedDict() dan items() .

Bisakah kita mengubah kunci

Nilai Kamus Python dapat diperbarui menggunakan dua cara berikut i. e. menggunakan metode update() dan juga, menggunakan tanda kurung siku . Kamus mewakili pasangan kunci-nilai dalam Python, diapit oleh kurung kurawal. Kuncinya unik dan titik dua memisahkannya dari nilai, sedangkan koma memisahkan item.

Apa yang dikembalikan oleh item () dan kunci () metode kamus?

Item Kamus Python() Metode . Objek tampilan berisi pasangan kunci-nilai kamus, sebagai tupel dalam daftar. Objek tampilan akan mencerminkan setiap perubahan yang dilakukan pada kamus, lihat contoh di bawah ini. a view object. The view object contains the key-value pairs of the dictionary, as tuples in a list. The view object will reflect any changes done to the dictionary, see example below.