Dapatkah Anda mengubah daftar menjadi kamus dengan python?

Pada artikel ini kita akan membahas berbagai cara untuk mengonversi satu atau beberapa daftar ke kamus dengan Python

Konversi berikut dari daftar ke kamus akan dibahas di sini,

  • Mengonversi Daftar ke Kamus dengan nilai yang sama
  • Konversi item Daftar sebagai kunci dalam kamus dengan nilai yang disebutkan
  • Ubah dua daftar menjadi kamus
  • Mengonversi daftar tupel ke kamus

Mengonversi Daftar ke Kamus dengan nilai yang sama

Misalkan kita memiliki daftar string i. e

# List of strings
listOfStr = ["hello", "at" , "test" , "this" , "here" , "now" ]

Sekarang kami ingin membuat kamus dengan semua elemen dalam daftar ini sebagai kunci. Untuk setiap nilai kunci akan sama i. e. 5. Mari kita lihat bagaimana melakukannya i. e

Menggunakan pemahaman kamus

Iklan

'''
Converting a list to dictionary with list elements as keys in dictionary
All keys will have same value
''' 
dictOfWords = { i : 5 for i in listOfStr }
_

Isi kamus akan menjadi,

hello  ::  5
here  ::  5
this  ::  5
test  ::  5
at  ::  5
now  ::  5

Menggunakan dikt. fromKeys()

'''
Converting a list to dictionary with list elements as keys in dictionary
using dict.fromkeys()
''' 
dictOfWords = dict.fromkeys(listOfStr , 1)

dikt. 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 dari fromkeys()

Jika tidak ada nilai default yang diteruskan fromKeys() maka nilai default untuk kunci dalam kamus adalah Tidak ada

Konversi item Daftar sebagai kunci dalam kamus dengan nilai yang disebutkan

Misalkan kita memiliki daftar string i. e

# List of strings
listOfStr = ["hello", "at" , "test" , "this" , "here" , "now" ]

Mari buat kamus dari daftar ini dengan elemen daftar sebagai kunci dan nilai sebagai bilangan bulat dari 0 hingga n-1 (n adalah ukuran daftar) i. e

'''
Converting a list to dictionary with list elements as values in dictionary
and keys are enumerated index starting from 0 i.e. index position of element in list
''' 
dictOfWords = { i : listOfStr[i] for i in range(0, len(listOfStr) ) }

Isi kamus akan menjadi,

0  ::  hello
1  ::  at
2  ::  test
3  ::  this
4  ::  here
5  ::  now
_

Ubah dua daftar menjadi kamus

Misalkan kita memiliki dua daftar i. e

# List of strings
listOfStr = ["hello", "at" , "test" , "this" , "here" , "now" ]
    
# List of ints
listOfInt = [56, 23, 43, 97, 43, 102]

Mari buat kamus dengan elemen listOfStr sebagai kunci dan elemen listOfInt sebagai nilai menggunakan zip() i. e

# Create a zip object from two lists
zipbObj = zip(listOfStr, listOfInt)

# Create a dictionary from zip object
dictOfWords = dict(zipbObj)
_

Zip() menerima sejumlah objek yang dapat diubah dan mengembalikan daftar tupel. Setiap entri dalam tuple berisi elemen dari setiap objek yang dapat diubah
Kami telah melewati dua objek daftar di zip() , sehingga akan mengembalikan daftar tupel, di mana setiap tupel berisi entri dari kedua daftar. Kemudian kami membuat objek kamus dari daftar tupel ini

Isi kamus adalah,

Dictionary from two Lists 
hello  ::  56
here  ::  43
this  ::  97
test  ::  43
at  ::  23
now  ::  102
_
  • Jika panjang daftar kunci kurang dari daftar nilai maka elemen yang tersisa dalam daftar nilai akan dilewati

Mengonversi daftar tupel ke kamus

Misalkan kita memiliki daftar tupel dengan dua kolom di setiap entri i. e

'''
Converting a list to dictionary with list elements as keys in dictionary
All keys will have same value
''' 
dictOfWords = { i : 5 for i in listOfStr }
_0

Kami dapat langsung meneruskan daftar tupel ini ke konstruktor kamus i. e

'''
Converting a list to dictionary with list elements as keys in dictionary
All keys will have same value
''' 
dictOfWords = { i : 5 for i in listOfStr }
_1

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

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

Bisakah saya menggunakan daftar sebagai kunci kamus Python?

Kedua, kunci kamus harus dari jenis yang tidak dapat diubah. Misalnya, Anda dapat menggunakan integer, float, string, atau Boolean sebagai kunci kamus. Namun, baik daftar maupun kamus lain tidak dapat berfungsi sebagai kunci kamus , karena daftar dan kamus dapat berubah.

Bagaimana Anda membuat daftar menjadi nilai kamus?

Berikut adalah 3 pendekatan untuk mengekstrak nilai kamus sebagai daftar dengan Python. .
(1) Menggunakan fungsi list(). my_list = daftar(my_dict. nilai())
(2) Menggunakan Pemahaman Daftar. my_list = [i untuk i di my_dict. nilai()]
(3) Menggunakan For Loop. my_list = [] untuk i di my_dict. nilai(). daftarku. tambahkan (i)

Bagaimana Anda menambahkan item dari daftar ke kamus dengan Python?

Metode 1. Menggunakan tanda += pada kunci dengan nilai kosong .