Konversi daftar daftar ke kamus python

Daftar dan kamus adalah kumpulan Python yang memungkinkan Anda menyimpan nilai serupa dalam satu struktur data

Selain itu, daftar akan memungkinkan Anda untuk menyimpan data dalam urutan tertentu, sedangkan kamus tidak diurutkan dan tidak dapat menyimpan beberapa nilai duplikat. Mengubah daftar menjadi kamus adalah operasi standar Python. Jadi mari kita lihat bagaimana melakukannya

Daftar Python ke kamus

Untuk mengonversi daftar menjadi kamus dengan Python, gunakan pemahaman daftar dan buat pasangan nilai kunci dari elemen berurutan, lalu ketikkan daftar ke jenis kamus. Nilai yang dikembalikan dikonversi dari daftar ke tipe data kamus

def listToDict(lst):
    op = {lst[i]: lst[i + 1] for i in range(0, len(lst), 2)}
    return op


lst = ['m', 1, 'b', 2, 'k', 3]
print(listToDict(lst))

Keluaran

➜  pyt python3 app.py
{'m': 1, 'b': 2, 'k': 3}
➜  pyt
_

Dalam contoh di atas, kami menggunakan perulangan for untuk memisahkan elemen ganjil dan genap lalu menggunakan fungsi range() untuk membentuk nilai ganjil ke kunci dan nilai ke kamus. Kami telah menggunakan metode pemahaman kamus

Jadi, kami mendapatkan kamus yang dikonversi dari daftar di output

Mengubah daftar menjadi kamus dengan nilai yang sama

Untuk mengubah daftar menjadi kamus dengan nilai yang sama, gunakan pemahaman kamus. Nilai setiap kunci akan sama.

# app.py

def listToDict(lst):
    op = { i : 5 for i in lst }
    return op


lst = ['millie', 'caleb', 'finn', 'sadie', 'noah']
print(listToDict(lst))

Lihat hasilnya

➜  pyt python3 app.py
{'millie': 5, 'caleb': 5, 'finn': 5, 'sadie': 5, 'noah': 5}
➜  pyt

Semua elemen daftar menjadi kunci dalam contoh di atas, dan 5 adalah nilai untuk semua elemen

Daftar python untuk dict menggunakan dict. fromKeys()

Kamus. fromKeys() adalah metode Python bawaan yang membuat kamus baru dari urutan elemen tertentu dengan nilai yang diberikan oleh pengguna. Metode fromKeys() mengembalikan kamus dengan kunci dan nilai yang ditentukan.

Kami membuat kamus dari daftar, jadi Python Dict fromKeys() bisa mendapatkan nilai kunci dari Daftar Python dan mengubahnya menjadi kunci kamus. Kami melewatkan parameter kedua sebagai 5, sebuah nilai, sehingga kami mendapatkan keluaran yang sama dengan program di atas

# app.py

def listToDict(lst):
    op = dict.fromkeys(lst , 5)
    return op


lst = ['millie', 'caleb', 'finn', 'sadie', 'noah']
print(listToDict(lst))
_

Keluaran

➜  pyt python3 app.py
{'millie': 5, 'caleb': 5, 'finn': 5, 'sadie': 5, 'noah': 5}
➜  pyt

Dikte. fromKeys() menerima daftar dan nilai default. Ini mengembalikan kamus dengan item dalam daftar sebagai kunci. Semua item kamus akan memiliki nilai yang sama yang diteruskan di fromkeys()

Mengonversi elemen daftar sebagai nilai dalam kamus dengan kunci yang diindeks dengan Python

Pada contoh pertama artikel ini, kami telah menggunakan item daftar sebagai kunci dan nilai sebagai bilangan bulat dalam kamus. Namun, dalam contoh ini, kami membuat kamus dengan kunci yang diindeks, dan nilainya adalah item daftar python menggunakan pemahaman kamus

Lihat kode berikut

# app.py

def listToDict(lst):
    op = { i : lst[i] for i in range(0, len(lst) ) }
    return op


lst = ['millie', 'caleb', 'finn', 'sadie', 'noah']
print(listToDict(lst))
_

Keluaran

➜  pyt python3 app.py
{0: 'millie', 1: 'caleb', 2: 'finn', 3: 'sadie', 4: 'noah'}
➜  pyt

Mengubah dua daftar menjadi kamus

Untuk mengonversi dua daftar menjadi kamus dengan Python, gunakan fungsi zip() , yang mengembalikan daftar tupel dan meneruskan daftar tupel itu ke fungsi dict() , yang mengembalikan kamus

Katakanlah kita memiliki dua daftar

lstStr = ['millie', 'caleb', 'finn', 'sadie', 'noah']
lstInt = [11, 21, 19, 29, 46]
_

Kami akan mengambil daftar pertama sebagai kunci kamus dan daftar kedua sebagai nilai

Untuk mencapainya dan membuat kamus dari dua daftar, kita dapat menggunakan fungsi Python zip()

Lihat kode lengkap di bawah ini

# app.py

def listToDict(lstA, lstB):
    zippedLst = zip(lstA, lstB)
    op = dict(zippedLst)
    return op


lstStr = ['millie', 'caleb', 'finn', 'sadie', 'noah']
lstInt = [11, 21, 19, 29, 46]
print(listToDict(lstStr, lstInt))

_

Lihat hasilnya

➜  pyt python3 app.py
{'m': 1, 'b': 2, 'k': 3}
➜  pyt
_0

Fungsi zip() menerima beberapa objek iterable dan mengembalikan daftar tupel

Setiap entri dalam tuple berisi elemen dari setiap objek yang dapat diubah

Kami telah melewati dua daftar objek dalam fungsi zip(), sehingga akan mengembalikan daftar tupel, di mana setiap tupel berisi entri dari kedua daftar. Kemudian kami membuat objek kamus dari daftar tupel ini

Jika panjang daftar kunci kurang dari daftar nilai, maka elemen yang tersisa dalam daftar nilai akan dilewati

Mengonversi daftar tupel ke kamus dengan Python

Untuk mengonversi daftar tupel ke kamus dengan Python, gunakan metode dict() dan teruskan daftar tupel ke metode dict() , yang mengembalikan kamus

➜  pyt python3 app.py
{'m': 1, 'b': 2, 'k': 3}
➜  pyt
_1

Keluaran

➜  pyt python3 app.py
{'m': 1, 'b': 2, 'k': 3}
➜  pyt
_0

Kami dapat langsung meneruskan daftar tupel ini ke konstruktor kamus

Entri di kolom pertama akan menjadi kunci, dan entri di kolom kedua akan menjadi nilai di kamus baru