Từ điển python vào danh sách từ điển

Viết chương trình Python để chuyển đổi danh sách từ điển thành danh sách các giá trị tương ứng với khóa đã chỉ định

  • Sử dụng hiểu danh sách và đọc chính tả. get[] để lấy giá trị của khóa cho mỗi từ điển trong lst

Giải pháp mẫu

Mã Python

def test[lsts, key]:
  return [x.get[key] for x in lsts]
 
students = [
  { 'name': 'Theodore', 'age': 18 },
  { 'name': 'Mathew', 'age': 22 },
  { 'name': 'Roxanne', 'age': 20 },
  { 'name': 'David', 'age': 18 }
]

print["Original list of dictionaries:"]
print[students]
print["\nConvert a list of dictionaries into a list of values corresponding to the specified key:"]
print[test[students, 'age']]

Đầu ra mẫu

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]

Sơ đồ

Trực quan hóa việc thực thi mã Python

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên


Trình chỉnh sửa mã Python

Có một cách khác để giải quyết giải pháp này?

Trước. Viết chương trình Python để đảo ngược từ điển với các giá trị có thể băm duy nhất.
Tiếp theo. Viết chương trình Python để tạo một từ điển có cùng khóa với từ điển đã cho và các giá trị được tạo bằng cách chạy hàm đã cho cho từng giá trị.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



con trăn. Lời khuyên trong ngày

dấu ngoặc kép

"'một số văn bản ở đây"'

Dấu ngoặc kép là một giải pháp cho sự phức tạp phổ biến khi làm việc với chuỗi

Python sẽ cho phép bạn tạo các chuỗi nhiều dòng miễn là bạn sử dụng ba dấu ngoặc kép, nó hoạt động với cả dấu ngoặc đơn và dấu ngoặc kép miễn là bạn sử dụng 3 trong số chúng

Danh sách và từ điển trong Python là 2 cấu trúc dữ liệu trong Python dùng để lưu trữ dữ liệu. Danh sách Python là một chuỗi các đối tượng được sắp xếp theo thứ tự, trong khi từ điển không có thứ tự. Các mục trong danh sách có thể được truy cập bằng một chỉ mục [dựa trên vị trí của chúng] trong khi các mục trong từ điển có thể được truy cập bằng các phím chứ không phải theo vị trí của chúng

Hãy xem cách chuyển đổi danh sách Python thành từ điển

Mười cách khác nhau để chuyển đổi danh sách Python thành từ điển

  1. Chuyển đổi danh sách các bộ thành từ điển
  2. Chuyển đổi hai danh sách có cùng độ dài thành từ điển
  3. Chuyển đổi hai danh sách có độ dài khác nhau thành từ điển
  4. Chuyển đổi danh sách các mục khóa, giá trị thay thế thành từ điển
  5. Chuyển đổi danh sách từ điển thành một từ điển duy nhất
  6. Chuyển đổi danh sách thành từ điển bằng cách sử dụng enumerate[]
  7. Chuyển đổi danh sách thành từ điển bằng cách hiểu từ điển
  8. Chuyển đổi danh sách thành từ điển bằng dict. fromkeys[]
  9. Chuyển đổi danh sách lồng nhau thành từ điển bằng cách hiểu từ điển
  10. Chuyển đổi danh sách thành từ điển bằng Counter[]

1. Chuyển đổi danh sách các bộ dữ liệu thành từ điển

Hàm tạo

itertools.zip_longest[*iterables,fillvalue=None]
0 xây dựng từ điển trực tiếp từ chuỗi các cặp khóa-giá trị

#Converting list of tuples to dictionary by using dict[] constructor
color=[['red',1],['blue',2],['green',3]]
d=dict[color]
print [d]#Output:{'red': 1, 'blue': 2, 'green': 3}

2. Chuyển đổi hai danh sách có cùng độ dài thành từ điển

Chúng ta có thể chuyển đổi hai danh sách có cùng độ dài sang từ điển bằng cách sử dụng

itertools.zip_longest[*iterables,fillvalue=None]
1

itertools.zip_longest[*iterables,fillvalue=None]
1 sẽ trả về một trình vòng lặp của các bộ dữ liệu. Chúng ta có thể chuyển đổi đối tượng zip đó thành từ điển bằng hàm tạo
itertools.zip_longest[*iterables,fillvalue=None]
0

zip[]

Tạo một trình lặp tổng hợp các phần tử từ mỗi lần lặp

itertools.zip_longest[*iterables,fillvalue=None]
4. Trả về một bộ lặp của các bộ, trong đó bộ thứ i chứa phần tử thứ i từ mỗi chuỗi đối số hoặc bộ lặp. Trình vòng lặp dừng khi hết vòng lặp đầu vào ngắn nhất. Với một đối số có thể lặp lại duy nhất, nó trả về một trình lặp gồm 1 bộ. Không có đối số, nó trả về một trình vòng lặp trống. ” — Trăn

Ví dụ

Sử dụng zip[]

nguồn hình ảnh. Tác giả

3. Chuyển đổi hai danh sách có độ dài khác nhau thành từ điển

Chúng ta có thể chuyển đổi hai danh sách có độ dài khác nhau sang từ điển bằng cách sử dụng

itertools.zip_longest[*iterables,fillvalue=None]
5

Theo

itertools.zip_longest[*iterables,fillvalue=None]
6. Tạo một iterator tổng hợp các phần tử từ mỗi iterables. Nếu các lần lặp có độ dài không đồng đều, giá trị còn thiếu sẽ được lấp đầy bằng giá trị lấp đầy. Lặp lại tiếp tục cho đến khi hết lần lặp dài nhất.
Trong zip[], phép lặp tiếp tục cho đến khi hết phép lặp ngắn nhất. ”

itertools.zip_longest[*iterables,fillvalue=None]

Sử dụng

itertools.zip_longest[*iterables,fillvalue=None]
1, quá trình lặp tiếp tục cho đến khi hết thời gian lặp ngắn nhất

Sử dụng zip[]

Sử dụng

itertools.zip_longest[*iterables,fillvalue=None]
6, quá trình lặp tiếp tục cho đến khi hết thời gian lặp dài nhất. Theo mặc định,
itertools.zip_longest[*iterables,fillvalue=None]
9 là
Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
40

Sử dụng zip_longest[]

Hình ảnh của tác giả

itertools.zip_longest[*iterables,fillvalue=None]
9 được đề cập là x

Sử dụng zip_longest[]

4. Chuyển đổi danh sách khóa thay thế, mục giá trị thành từ điển

Chúng tôi có thể chuyển đổi danh sách các khóa, giá trị thay thế dưới dạng các mục thành từ điển bằng cách sử dụng tính năng cắt

Cắt lát trả về một danh sách mới chứa một chuỗi các mục từ danh sách. Chúng tôi có thể chỉ định một loạt các chỉ mục

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
4

Chúng ta có thể tạo hai danh sách lát. Danh sách đầu tiên chỉ chứa các khóa và danh sách tiếp theo chỉ chứa các giá trị

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
7

Tạo hai đối tượng lát từ danh sách này

Đối tượng lát đầu tiên sẽ chỉ chứa các khóa

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
42

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
43 không được đề cập. Theo mặc định, nó sẽ bắt đầu từ đầu danh sách

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
44 không được đề cập. Theo mặc định, nó sẽ dừng ở cuối danh sách

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
44 được đề cập là 2

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
42 Trả về danh sách chứa các phần tử từ đầu đến cuối bằng cách sử dụng bước 2 [các phần tử thay thế]

itertools.zip_longest[*iterables,fillvalue=None]
3

nguồn hình ảnh. Tác giả

Đối tượng lát thứ hai sẽ chỉ chứa các giá trị

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
7

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
47

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
43 được đề cập là 1. Nó sẽ bắt đầu cắt từ chỉ mục đầu tiên

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
44 không được đề cập. Nó sẽ dừng ở cuối danh sách

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
70 được đề cập là 2

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
71] Trả về danh sách chứa các phần tử từ chỉ mục đầu tiên đến cuối bằng cách sử dụng bước 2 [các phần tử thay thế]

#Converting list of tuples to dictionary by using dict[] constructor
color=[['red',1],['blue',2],['green',3]]
d=dict[color]
print [d]#Output:{'red': 1, 'blue': 2, 'green': 3}
0

Nguồn hình ảnh. Tác giả

Bây giờ chúng ta có thể hợp nhất hai danh sách bằng hàm

itertools.zip_longest[*iterables,fillvalue=None]
1

Chuyển đổi danh sách thành từ điển bằng Slicing

5. Chuyển đổi danh sách từ điển thành một từ điển duy nhất

Một danh sách từ điển có thể được chuyển đổi thành một từ điển duy nhất bằng các cách sau

  • Original list of dictionaries:
    [{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]
    
    Convert a list of dictionaries into a list of values corresponding to the specified key:
    [18, 22, 20, 18]
    
    73
  • hiểu từ điển
  • Original list of dictionaries:
    [{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]
    
    Convert a list of dictionaries into a list of values corresponding to the specified key:
    [18, 22, 20, 18]
    
    74

mệnh lệnh. cập nhật[]

Chúng tôi có thể chuyển đổi danh sách từ điển thành một từ điển duy nhất bằng cách sử dụng

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
73

  • Tạo một từ điển trống
  • Lặp lại danh sách từ điển bằng vòng lặp
    Original list of dictionaries:
    [{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]
    
    Convert a list of dictionaries into a list of values corresponding to the specified key:
    [18, 22, 20, 18]
    
    76
  • Bây giờ hãy cập nhật từng mục [cặp khóa-giá trị] vào từ điển trống bằng cách sử dụng
    Original list of dictionaries:
    [{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]
    
    Convert a list of dictionaries into a list of values corresponding to the specified key:
    [18, 22, 20, 18]
    
    73

sử dụng chính tả. cập nhật[]

hiểu từ điển

Một cách hiểu từ điển bao gồm các dấu ngoặc _______178 chứa hai biểu thức được phân tách bằng dấu hai chấm theo sau bởi mệnh đề

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
76, sau đó không hoặc nhiều mệnh đề
Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
76 hoặc
itertools.zip_longest[*iterables,fillvalue=None]
31

itertools.zip_longest[*iterables,fillvalue=None]
1

itertools.zip_longest[*iterables,fillvalue=None]
32 — Trả lại từng mục trong danh sách
itertools.zip_longest[*iterables,fillvalue=None]
33

itertools.zip_longest[*iterables,fillvalue=None]
34 — Trả về cặp khóa, giá trị trong mục đó.
itertools.zip_longest[*iterables,fillvalue=None]
35
itertools.zip_longest[*iterables,fillvalue=None]
36

itertools.zip_longest[*iterables,fillvalue=None]
37— được cập nhật trong từ điển d1

hiểu từ điển

bộ sưu tập. Bản Đồ Chuỗi

Bằng cách sử dụng

itertools.zip_longest[*iterables,fillvalue=None]
38, chúng tôi có thể chuyển đổi danh sách từ điển thành một từ điển duy nhất

Theo

itertools.zip_longest[*iterables,fillvalue=None]
39. Một ChainMap nhóm nhiều từ điển hoặc các ánh xạ khác lại với nhau để tạo một chế độ xem duy nhất, có thể cập nhật. ”

Kiểu trả về sẽ là

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
70. Chúng ta có thể chuyển đổi thành từ điển bằng hàm tạo
itertools.zip_longest[*iterables,fillvalue=None]
0

6. Chuyển đổi danh sách thành từ điển bằng Enumerate[]

Bằng cách sử dụng

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
72, chúng tôi có thể chuyển đổi danh sách thành từ điển với chỉ mục làm khóa và mục danh sách làm giá trị

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
72 sẽ trả về một đối tượng liệt kê

Chúng ta có thể chuyển đổi thành dict bằng hàm tạo

itertools.zip_longest[*iterables,fillvalue=None]
0

Theo

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
75. Trả về một đối tượng liệt kê. iterable phải là một trình tự, một terator hoặc một số đối tượng khác hỗ trợ phép lặp. Phương thức ____176 của iterator được trả về bởi
Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
72 trả về một bộ chứa một số đếm [từ đầu được mặc định là 0] và các giá trị thu được từ việc lặp đi lặp lại

liệt kê[]

7. Chuyển đổi danh sách thành từ điển bằng cách hiểu từ điển

Bằng cách sử dụng khả năng hiểu từ điển, chúng ta có thể chuyển đổi danh sách khóa thành từ điển có cùng giá trị

itertools.zip_longest[*iterables,fillvalue=None]
8

Nó sẽ lặp qua danh sách và thay đổi mục của nó thành một khóa [

Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
78] và giá trị sẽ là
Original list of dictionaries:
[{'name': 'Theodore', 'age': 18}, {'name': 'Mathew', 'age': 22}, {'name': 'Roxanne', 'age': 20}, {'name': 'David', 'age': 18}]

Convert a list of dictionaries into a list of values corresponding to the specified key:
[18, 22, 20, 18]
79 cho tất cả các khóa

8. Chuyển đổi danh sách thành từ điển bằng dict. fromkeys[]

#Converting list of tuples to dictionary by using dict[] constructor
color=[['red',1],['blue',2],['green',3]]
d=dict[color]
print [d]#Output:{'red': 1, 'blue': 2, 'green': 3}
00 sẽ chấp nhận một danh sách các khóa, được chuyển đổi thành các khóa từ điển và một giá trị sẽ được chỉ định

Giá trị giống nhau sẽ được gán cho tất cả các khóa

9. Chuyển đổi danh sách lồng nhau thành từ điển bằng cách hiểu từ điển

Chúng ta có thể chuyển đổi danh sách lồng nhau thành từ điển bằng cách sử dụng khả năng hiểu từ điển

#Converting list of tuples to dictionary by using dict[] constructor
color=[['red',1],['blue',2],['green',3]]
d=dict[color]
print [d]#Output:{'red': 1, 'blue': 2, 'green': 3}
01

Nó sẽ lặp qua danh sách

Nó sẽ lấy mục ở chỉ mục 0 làm khóa và chỉ mục 1 làm giá trị

10. Chuyển đổi danh sách thành từ điển bằng Counter[]

#Converting list of tuples to dictionary by using dict[] constructor
color=[['red',1],['blue',2],['green',3]]
d=dict[color]
print [d]#Output:{'red': 1, 'blue': 2, 'green': 3}
02. Counter là một lớp con dict để đếm các đối tượng có thể băm. Nó là một bộ sưu tập nơi các phần tử được lưu trữ dưới dạng khóa từ điển và số lượng của chúng được lưu trữ dưới dạng giá trị từ điển. Số lượng được phép là bất kỳ giá trị số nguyên nào kể cả số không hoặc số âm. ” — Trăn

itertools.zip_longest[*iterables,fillvalue=None]
4

#Converting list of tuples to dictionary by using dict[] constructor
color=[['red',1],['blue',2],['green',3]]
d=dict[color]
print [d]#Output:{'red': 1, 'blue': 2, 'green': 3}
03 sẽ chuyển đổi các mục trong danh sách thành khóa và tần số của chúng thành giá trị

Phản đối[]

Các liên kết blog khác của tôi

15 điều cần biết để thông thạo từ điển Python

25 câu hỏi hàng đầu về danh sách Python

7 cách hợp nhất từ ​​điển trong Python

Hợp nhất danh sách trong Python

Tài nguyên

Xem không gian này để biết thêm các bài viết về Python và Khoa học dữ liệu. Nếu bạn muốn đọc thêm các hướng dẫn của tôi, hãy theo dõi tôi trên Medium, LinkedIn, Twitter

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

Nhận tất cả các cặp khóa-giá trị của từ điển bằng cách sử dụng hàm items[]> [trả về một nhóm các cặp khóa-giá trị trong từ điển] và chuyển đổi các mục từ điển [cặp khóa-giá trị] thành danh sách các bộ bằng cách sử dụng danh sách . In danh sách kết quả của một từ điển sau khi chuyển đổi

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

Để 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ề đố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ử.

Python có thể có danh sách từ điển không?

Trong Python, bạn có thể có Danh sách từ điển . Bạn đã biết rằng các phần tử của Danh sách Python có thể là các đối tượng thuộc bất kỳ loại nào. Trong hướng dẫn này, chúng ta sẽ học cách tạo danh sách từ điển, cách truy cập chúng, cách thêm từ điển vào danh sách và cách sửa đổi chúng.

Chủ Đề