Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chuyển đổi hai danh sách thành từ điển trong Python

Trong khi danh sách (list) Python chứa một chuỗi các giá trị, thì từ điển (dictionary) lại chứa các cặp giá trị được gọi là cặp khóa-giá trị (key-value pairs). Trong bài viết này, chúng ta sẽ lấy hai danh sách và kết hợp chúng lại để tạo thành một từ điển Python.

Sử dụng vòng lặp for và remove

Chúng ta tạo hai vòng lặp for lồng nhau. Trong vòng lặp bên trong, sẽ gán một danh sách làm khóa cho từ điển trong khi liên tục xóa các giá trị từ danh sách của vòng lặp bên ngoài.

Ví dụ

listK = ["Mon", "Tue", "Wed"]
listV = [3, 6, 5]
# Các danh sách cho trước
print("List of K : ", listK)
print("list of V : ", listV)
# Từ điển rỗng
res = {}
# Chuyển đổi sang từ điển
for key in listK:
    for value in listV:
        res[key] = value
        listV.remove(value)
        break
print("Dictionary from lists :\n ", res)

Kết quả

Chạy đoạn mã trên cho kết quả sau:

('List of K : ', ['Mon', 'Tue', 'Wed']) ('list of V : ', [3, 6, 5]) ('Dictionary from lists :\n ', {'Wed': 5, 'Mon': 3, 'Tue': 6})

Sử dụng vòng lặp for và range

Hai danh sách được kết hợp để tạo thành các cặp giá trị bằng cách đưa chúng vào một vòng lặp for. Hàm range và len được sử dụng để theo dõi số lượng phần tử cho đến khi tất cả các cặp khóa-giá trị được tạo ra.

Ví dụ

listK = ["Mon", "Tue", "Wed"]
listV = [3, 6, 5]
# Các danh sách cho trước
print("List of K : ", listK)
print("list of V : ", listV)
# Chuyển đổi sang từ điển
res = {listK[i]: listV[i] for i in range(len(listK))}
print("Dictionary from lists :\n ", res)

Kết quả

Chạy đoạn mã trên cho kết quả sau:

('List of K : ', ['Mon', 'Tue', 'Wed']) ('list of V : ', [3, 6, 5]) ('Dictionary from lists :\n ', {'Wed': 5, 'Mon': 3, 'Tue': 6})

Sử dụng zip

Hàm zip thực hiện việc tương tự như cách tiếp cận trên. Nó cũng kết hợp các phần tử từ hai danh sách, tạo ra các cặp khóa và giá trị.

Ví dụ

listK = ["Mon", "Tue", "Wed"]
listV = [3, 6, 5]
# Các danh sách cho trước
print("List of K : ", listK)
print("list of V : ", listV)
# Chuyển đổi sang từ điển
res = dict(zip(listK, listV))
print("Dictionary from lists :\n ", res)

Kết quả

Chạy đoạn mã trên cho kết quả sau:

('List of K : ', ['Mon', 'Tue', 'Wed']) ('list of V : ', [3, 6, 5]) ('Dictionary from lists :\n ', {'Wed': 5, 'Mon': 3, 'Tue': 6})