Làm cách nào để chuyển đổi từ điển thành danh sách trong Python?

Từ điển Python là kiểu dữ liệu dựng sẵn có thể lưu dữ liệu khác với danh sách hoặc mảng. Nó lưu trữ dữ liệu trong các cặp khóa-giá trị

Từ điển không phải là trình tự, vì vậy chúng không thể được lập chỉ mục theo dãy số;

Từ điển Python để liệt kê

Để chuyển từ điển thành danh sách trong Python, hãy sử dụng một trong hai lệnh dict. keys() hoặc dict. giá trị () hoặc dict. phương thức item()

  1. mệnh lệnh. phím(). Phương thức keys() trả về một đối tượng dạng xem chứa các khóa của từ điển dưới dạng danh sách
  2. mệnh lệnh. giá trị(). Phương thức values() trả về một đối tượng dạng xem chứa các giá trị của từ điển dưới dạng danh sách
  3. mệnh lệnh. mặt hàng(). Phương thức items() trả về một đối tượng dạng xem hiển thị danh sách các cặp bộ (khóa, giá trị) của từ điển

Python chính tả. phím()

Hãy định nghĩa một từ điển và áp dụng phương thức keys() để lấy danh sách tất cả các khóa từ điển

sabrina = {
    "witch": "Sabrina Spellman",
    "warlock": "Nicholas Scratch",
    "darklord": "Lucifer Morningstar",
}

dict_keys = sabrina.keys()
print(dict_keys)
print(type(dict_keys))

đầu ra

dict_keys(['witch', 'warlock', 'darklord'])

Đối tượng xem sẽ phản ánh bất kỳ thay đổi nào được thực hiện đối với từ điển

Python chính tả. giá trị()

mệnh lệnh. các giá trị () là một hàm tích hợp trả về một đối tượng dạng xem hiển thị danh sách tất cả các giá trị trong từ điển

sabrina = {
    "witch": "Sabrina Spellman",
    "warlock": "Nicholas Scratch",
    "darklord": "Lucifer Morningstar",
}

dict_values = sabrina.values()
print(dict_values)
print(type(dict_values))

đầu ra

dict_values(['Sabrina Spellman', 'Nicholas Scratch', 'Lucifer Morningstar'])

Hàm values() cũng trả về một đối tượng dạng xem hiển thị danh sách tất cả các giá trị

Python chính tả. mặt hàng()

Python chính tả. items() là một phương thức tích hợp trả về một đối tượng xem hiển thị danh sách các cặp tuple (khóa, giá trị) của từ điển. Phương thức items() tương tự như phương thức viewitems() trong Python 2. 7

sabrina = {
    "witch": "Sabrina Spellman",
    "warlock": "Nicholas Scratch",
    "darklord": "Lucifer Morningstar",
}

data = sabrina.items()
print(data)
print(type(data))

đầu ra

dict_items([('witch', 'Sabrina Spellman'), ('warlock', 'Nicholas Scratch'), ('darklord', 'Lucifer Morningstar')])

Đó là nó. Đầu ra của đoạn mã trên phải là các giá trị dữ liệu chính. cặp giá trị từ một từ điển

Để chuyển đổi các khóa Từ điển Python thành Danh sách, bạn có thể sử dụng dict. keys() phương thức trả về một đối tượng dict_keys. Đối tượng này có thể được lặp lại và nếu bạn chuyển nó tới hàm tạo list(), nó sẽ trả về một đối tượng danh sách với các khóa từ điển làm phần tử

Một đoạn mã đơn giản để chuyển đổi các khóa từ điển thành danh sách là

keysList = list(myDict.keys())

ví dụ 1. Các phím từ điển để liệt kê bằng cách sử dụng dict. phím()

Trong chương trình sau, chúng ta khởi tạo một từ điển với ba phím. cặp giá trị. Chúng tôi sẽ sử dụng dict. keys() để lấy đối tượng dict_keys. chúng tôi vượt qua dict. keys() làm đối số cho hàm tạo list(). list() trả về danh sách các khóa

Chương trình Python

myDict = {'a': 'apple', 'b': 'banana', 'c': 'cherry'}
keysList = list(myDict.keys())
print(keysList)
Chạy

đầu ra

________số 8_______

ví dụ 2. Khóa từ điển để liệt kê bằng cách sử dụng hiểu danh sách

Chúng tôi cũng có thể sử dụng Hiểu danh sách để lấy các khóa của từ điển dưới dạng các thành phần của danh sách

Chương trình Python

myDict = {'a': 'apple', 'b': 'banana', 'c': 'cherry'}
keysList = [key for key in myDict]
print(keysList)
Chạy

đầu ra

________số 8_______

ví dụ 3. Các khóa từ điển để liệt kê bằng vòng lặp For

Nếu bạn không thoải mái với việc hiểu Danh sách, hãy để chúng tôi sử dụng Vòng lặp. Khi bạn lặp trên từ điển, bạn sẽ nhận được khóa tiếp theo trong mỗi lần lặp. Xác định một danh sách trống keysList để lưu trữ các khóa và nối thêm khóa trong mỗi lần lặp trong vòng lặp for

Tóm lược. Để chuyển đổi một từ điển thành một danh sách các bộ dữ liệu, hãy sử dụng phương thức dict.items() để lấy một cặp có thể lặp lại của các cặp

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0 và chuyển đổi nó thành một danh sách bằng cách sử dụng hàm tạo
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
1.
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
2. Để sửa đổi từng cặp giá trị khóa trước khi lưu trữ nó trong danh sách, bạn có thể sử dụng câu lệnh hiểu danh sách
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
3 thay thế
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
4 và
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
5 bằng các sửa đổi cụ thể của bạn

Trong các dự án viết mã của mình, tôi thường thấy rằng việc chọn cấu trúc dữ liệu phù hợp là điều kiện tiên quyết quan trọng để viết mã rõ ràng và hiệu quả. Trong bài viết này, bạn sẽ tìm hiểu cách Pythonic nhất để chuyển từ điển thành danh sách

Dict to List — Cách chuyển từ điển thành danh sách trong Python

Làm cách nào để chuyển đổi từ điển thành danh sách trong Python?

Xem video này trên YouTube

Vấn đề. Đưa ra một từ điển của

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
6 cặp. Chuyển đổi nó thành danh sách các bộ dữ liệu
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0

Thí dụ. Cho từ điển sau

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

Bạn muốn chuyển đổi nó thành danh sách các bộ dữ liệu

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0

[('Alice', 19), ('Bob', 23), ('Carl', 47)]

Bạn có thể xem tổng quan nhanh về các phương pháp được kiểm tra trong bài viết này tiếp theo

Bài tập. Thay đổi cấu trúc dữ liệu của các thành phần từ điển. Nó vẫn hoạt động?

Hãy đi sâu vào các phương pháp

Phương pháp 1. Danh sách Tuples với dict. mục() + danh sách()

Làm cách nào để chuyển đổi từ điển thành danh sách trong Python?

Cách tiếp cận đầu tiên sử dụng phương thức từ điển

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
9 để truy xuất một bộ dữ liệu có thể lặp lại của
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0. Điều duy nhất còn lại là chuyển đổi nó thành một danh sách bằng cách sử dụng hàm tạo
d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
1 tích hợp sẵn

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]

Biến

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
2 hiện chứa danh sách các bộ dữ liệu
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0. Lưu ý rằng trong nhiều trường hợp, không cần thiết phải thực sự chuyển đổi nó thành danh sách và do đó, khởi tạo cấu trúc dữ liệu trong bộ nhớ

Ví dụ: nếu bạn muốn lặp lại tất cả các cặp

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0 trong từ điển, bạn có thể thực hiện mà không cần chuyển đổi

for k,v in d.items():
    s = str(k) + '->' + str(v)
    print(s)
'''
Alice->19
Bob->23
Carl->47
'''

Sử dụng phương thức

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
5 trên đối tượng từ điển là cách Pythonic nhất nếu mọi thứ bạn muốn là truy xuất danh sách các cặp
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0. Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn nhận danh sách các khóa—hiện tại bỏ qua các giá trị?

Phương pháp 2. Danh sách các phím với dict. phím()

Để lấy danh sách các giá trị chính, hãy sử dụng phương thức

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
7 và chuyển kết quả có thể lặp lại vào hàm tạo
d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
8

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 2
t = list(d.keys())
print(t)
# ['Alice', 'Bob', 'Carl']

Tương tự, bạn có thể muốn lấy một danh sách các giá trị

Phương pháp 3. Danh sách các giá trị với dict. giá trị()

Để lấy danh sách các giá trị chính, hãy sử dụng phương thức

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
9 và chuyển kết quả có thể lặp lại vào hàm tạo
d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 1
t = list(d.items())
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]
8

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 3
t = list(d.values())
print(t)
# [19, 23, 47]

Nhưng nếu bạn muốn sửa đổi từng bộ

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0 thì sao?

Phương pháp 4. Danh sách hiểu với dict. mặt hàng()

Hiểu danh sách là một cách nhỏ gọn để tạo danh sách. Công thức đơn giản là

for k,v in d.items():
    s = str(k) + '->' + str(v)
    print(s)
'''
Alice->19
Bob->23
Carl->47
'''
2

  • Sự diễn đạt. Phải làm gì với từng phần tử danh sách?
  • Định nghĩa bài văn. Những yếu tố để lựa chọn?

Bạn có thể sử dụng khả năng hiểu danh sách để sửa đổi từng cặp

[('Alice', 19), ('Bob', 23), ('Carl', 47)]
0 từ từ điển gốc trước khi lưu kết quả vào danh sách mới

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 4
t = [(k[:3], v-1) for k, v in d.items()]
print(t)
# [('Ali', 18), ('Bob', 22), ('Car', 46)]

Bạn chuyển đổi từng khóa thành một chuỗi có ba ký tự bằng cách cắt và giảm từng giá trị một

Phương pháp 5. zip() với dict. keys() và dict. giá trị()

Để dễ hiểu, về mặt lý thuyết, bạn có thể (về mặt lý thuyết) sử dụng hàm

for k,v in d.items():
    s = str(k) + '->' + str(v)
    print(s)
'''
Alice->19
Bob->23
Carl->47
'''
6 để tạo danh sách các bộ dữ liệu

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 5
t = list(zip(d.keys(), d.values()))
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]

Tuy nhiên, không có lợi ích gì so với việc chỉ sử dụng phương pháp dict.items(). Tuy nhiên, tôi muốn cho bạn thấy điều này vì hàm

for k,v in d.items():
    s = str(k) + '->' + str(v)
    print(s)
'''
Alice->19
Bob->23
Carl->47
'''
8 thường được sử dụng trong Python và điều quan trọng là bạn phải hiểu nó

Phương pháp 6. vòng lặp cơ bản

Phương thức cuối cùng sử dụng vòng lặp for cơ bản—không phải là cách tồi tệ nhất để thực hiện. Chắc chắn rồi, một chuyên gia Python sẽ sử dụng những cách Pythonic nhất mà tôi đã chỉ cho bạn ở trên. Nhưng sử dụng vòng lặp for cơ bản đôi khi lại tốt hơn—đặc biệt nếu bạn muốn có thể tùy chỉnh mã sau này (e. g. , làm tăng độ phức tạp của thân vòng lặp)

d = {'Alice': 19, 'Bob': 23, 'Carl': 47}

# Method 6
t = []
for k, v in d.items():
    t.append((k,v))
print(t)
# [('Alice', 19), ('Bob', 23), ('Carl', 47)]

Câu lệnh hiểu danh sách hoặc vòng lặp một dòng không phải là cách Pythonic nhất để chuyển đổi từ điển thành danh sách Python nếu bạn muốn sửa đổi từng thành phần danh sách mới bằng cách sử dụng biểu thức nội dung phức tạp hơn. Trong trường hợp này, vòng lặp đơn giản là lựa chọn tốt nhất của bạn

Những bài viết liên quan

  • Chuyển đổi danh sách sang Dict
  • Làm cách nào để chuyển đổi danh sách danh sách thành từ điển trong Python?
  • Hướng dẫn Cơ bản về Từ điển
  • Hướng dẫn cơ bản về danh sách

lập trình viên

❓ Câu hỏi. Tại sao các lập trình viên luôn trộn lẫn Halloween và Giáng sinh?
❗ Trả lời. Vì ngày 31 tháng 10 bằng ngày 25 tháng 12

(Nếu bạn không hiểu điều này, hãy đọc các bài viết của chúng tôi về các hàm tích hợp sẵn của Python. )

Đi đâu từ đây?

Đủ lý thuyết. Hãy thực hành một số

Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa

Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế

Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?

🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn

Tham gia hội thảo trên web miễn phí ngay bây giờ

Làm cách nào để chuyển đổi từ điển thành danh sách trong Python?

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Làm cách nào để chuyển đổi các giá trị từ điển thành danh sách trong Python?

Dưới đây là 3 cách tiếp cận để trích xuất các giá trị từ điển dưới dạng danh sách trong Python. .
(1) Sử dụng hàm list(). my_list = danh sách (my_dict. giá trị())
(2) Sử dụng cách hiểu danh sách. my_list = [i cho tôi trong my_dict. giá trị()]
(3) Sử dụng vòng lặp For. my_list = [] cho tôi trong my_dict. giá trị(). danh sách của tôi. nối thêm (i)

Làm cách nào để chuyển đổi các khóa từ điển thành danh sách trong Python?

Phương pháp 1. Lấy khóa từ điển dưới dạng danh sách bằng dict . mệnh lệnh. keys() trong Từ điển Python, trả về một đối tượng dạng xem hiển thị danh sách tất cả các khóa trong từ điển theo thứ tự chèn.

Làm cách nào để chuyển đổi từ điển thành danh sách các chuỗi trong Python?

Bạn có thể dễ dàng chuyển đổi từ điển Python thành chuỗi bằng cách sử dụng hàm str() . Hàm str() lấy một đối tượng (vì mọi thứ trong Python đều là đối tượng) làm tham số đầu vào và trả về một biến thể chuỗi của đối tượng đó.

Làm cách nào để lấy các giá trị từ từ điển vào danh sách?

Để lấy danh sách, chúng ta có thể dùng từ điển. giá trị() kết hợp với hàm list() . Phương thức value() được sử dụng để truy cập các giá trị từ khóa. các cặp giá trị và các giá trị sau đó được chuyển đổi thành danh sách bằng cách sử dụng hàm list().