Chuyển đổi giữa các kiểu collection rất phổ biến trong Python. Cần chuyển cặp khóa-giá trị trong dict thành tuple trong list. Bài viết trình bày các cách làm.
Sử dụng items()
Cách trực tiếp: dùng items() lấy cặp khóa-giá trị, tạo tuple trong list comprehension.
Ví dụ
Adict = {30: 'Mon', 11: 'Tue', 19: 'Fri'} # Từ điển cho trước
print("The given dictionary: ", Adict)
# Sử dụng items()
Alist = [(key, val) for key, val in Adict.items()] # Kết quả
print("The list of tuples: ", Alist)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
The given dictionary: {30: 'Mon', 11: 'Tue', 19: 'Fri'} The list of tuples: [(30, 'Mon'), (11, 'Tue'), (19, 'Fri')]
Sử dụng zip
zip() kết hợp các item truyền vào. Lấy keys() và values() của dict làm tham số cho zip(), gói kết quả bằng list(). Khóa-giá trị thành tuple của list.
Ví dụ
Adict = {30: 'Mon', 11: 'Tue', 19: 'Fri'} # Từ điển cho trước
print("The given dictionary: ", Adict)
# Sử dụng zip
Alist = list(zip(Adict.keys(), Adict.values())) # Kết quả
print("The list of tuples: ", Alist)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
The given dictionary: {30: 'Mon', 11: 'Tue', 19: 'Fri'} The list of tuples: [(30, 'Mon'), (11, 'Tue'), (19, 'Fri')]
Sử dụng append
Tạo list rỗng, append từng cặp khóa-giá trị như tuple. Vòng lặp for chuyển cặp khóa-giá trị thành tuple.
Ví dụ
Adict = {30: 'Mon', 11: 'Tue', 19: 'Fri'} # Từ điển cho trước
print("The given dictionary: ", Adict)
Alist = []
# Sử dụng append
for x in Adict:
k = (x, Adict[x])
Alist.append(k) # Kết quả
print("The list of tuples: ", Alist)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
The given dictionary: {30: 'Mon', 11: 'Tue', 19: 'Fri'} The list of tuples: [(30, 'Mon'), (11, 'Tue'), (19, 'Fri')]