Thêm từ điển vào danh sách python

Danh sách Python là các đối tượng có thể thay đổi có thể chứa các loại dữ liệu khác nhau. Vì điều này, bạn sẽ thường thấy mình thêm các mục vào danh sách. Trong hướng dẫn này, bạn sẽ học cách thêm từ điển vào danh sách trong Python

Mặc dù điều này có vẻ giống như một nhiệm vụ tầm thường, nhưng có một chút phức tạp đối với nó. Đừng lo lắng, mặc dù. Khi kết thúc hướng dẫn này, bạn sẽ hiểu tại sao một số hành vi không mong muốn xảy ra và cách giải quyết nó

Khi đọc xong hướng dẫn này, bạn sẽ học được những điều sau

  • Cách nối từ điển vào danh sách trong Python
  • Tại sao bạn cần thêm một bản sao của từ điển
  • Điều gì xảy ra nếu bạn không thêm một bản sao của từ điển

Mục lục

  • Cách nối từ điển vào danh sách trong Python
  • Hiểu các vấn đề khi thêm từ điển vào danh sách Python
  • Phần kết luận
  • Tài nguyên bổ sung

Cách nối từ điển vào danh sách trong Python

Python cung cấp một số cách khác nhau để nối các giá trị vào danh sách. Trên thực tế, bạn có thể sử dụng phương pháp .append() để thêm từ điển vào danh sách. Vì vậy, bạn có thể tự hỏi tại sao bạn đang đọc toàn bộ bài viết về điều này. Rất có thể, bạn đã thử phương pháp .append() và gặp phải một số kết quả không mong muốn. Hãy đi sâu vào cách thêm từ điển vào danh sách trong Python

Hãy xem xét chính phương thức .append() trước khi đi sâu hơn vào các từ điển bổ sung

# Understanding the Python list.append() Method
list.append(x)

Phương thức

# Appending a Dictionary to a List in Python
values = ['datagy', '.io']
ages = {'Nik': 33}

values.append(ages.copy())
print(values)

# Returns:
# ['datagy', '.io', {'Nik': 33}]
0 chấp nhận một đối tượng để thêm vào một danh sách đã cho. Vì phương thức hoạt động tại chỗ nên không cần gán lại danh sách cho biến khác. Như tên gợi ý, phương thức .append() sẽ thêm mục vào cuối danh sách đã cho

Cách nối từ điển vào danh sách trong Python

  1. Khai báo cả danh sách và từ điển của bạn

    Chúng tôi sẽ sử dụng hai biến để tạo danh sách và từ điển trong trường hợp này. Danh sách của chúng tôi sẽ được gọi là

    # Appending a Dictionary to a List in Python
    values = ['datagy', '.io']
    ages = {'Nik': 33}
    
    values.append(ages.copy())
    print(values)
    
    # Returns:
    # ['datagy', '.io', {'Nik': 33}]
    2 và từ điển của chúng tôi sẽ được gọi là
    # Appending a Dictionary to a List in Python
    values = ['datagy', '.io']
    ages = {'Nik': 33}
    
    values.append(ages.copy())
    print(values)
    
    # Returns:
    # ['datagy', '.io', {'Nik': 33}]
    3

  2. Nối từ điển sau khi áp dụng phương thức copy() cho nó

    Phương thức

    # Appending a Dictionary to a List in Python
    values = ['datagy', '.io']
    ages = {'Nik': 33}
    
    values.append(ages.copy())
    print(values)
    
    # Returns:
    # ['datagy', '.io', {'Nik': 33}]
    0 của Python hoạt động tại chỗ, nghĩa là bạn không cần gán lại nó. Thay vì chuyển vào từ điển, hãy áp dụng phương thức
    # Appending a Dictionary to a List in Python
    values = ['datagy', '.io']
    ages = {'Nik': 33}
    
    values.append(ages.copy())
    print(values)
    
    # Returns:
    # ['datagy', '.io', {'Nik': 33}]
    1 cho mã

  3. Python sẽ nối từ điển bằng các giá trị của nó, thay vì tham chiếu

    Bằng cách sử dụng phương pháp

    # Appending a Dictionary to a List in Python
    values = ['datagy', '.io']
    ages = {'Nik': 33}
    
    values.append(ages.copy())
    print(values)
    
    # Returns:
    # ['datagy', '.io', {'Nik': 33}]
    1, chúng tôi nối các giá trị của từ điển, thay vì các điểm tham chiếu của chúng. Nếu không có điều này, từ điển trong danh sách sẽ được liên kết với bản gốc

Hãy xem một ví dụ để xem nó hoạt động như thế nào

# Appending a Dictionary to a List in Python
values = ['datagy', '.io']
ages = {'Nik': 33}

values.append(ages.copy())
print(values)

# Returns:
# ['datagy', '.io', {'Nik': 33}]

Trong khối mã ở trên, chúng tôi đã chuyển bản sao của từ điển

# Appending a Dictionary to a List in Python
values = ['datagy', '.io']
ages = {'Nik': 33}

values.append(ages.copy())
print(values)

# Returns:
# ['datagy', '.io', {'Nik': 33}]
3 sang phương thức .append(). Theo nhiều cách, điều này tách các giá trị khỏi tham chiếu và chỉ nối thêm các chi tiết của từ điển

Hiểu các vấn đề khi thêm từ điển vào danh sách Python

Nếu bạn đã đọc đến đây, bạn có thể thắc mắc tại sao chúng tôi cần sử dụng phương pháp

# Appending a Dictionary to a List in Python
values = ['datagy', '.io']
ages = {'Nik': 33}

values.append(ages.copy())
print(values)

# Returns:
# ['datagy', '.io', {'Nik': 33}]
1 khi thêm vào từ điển của chúng tôi. Hãy xem một ví dụ về điều gì sẽ xảy ra khi chúng ta không làm điều này

# Appending a Dictionary Without Copying
values = ['datagy', '.io']
ages = {'Nik': 33}

values.append(ages)

print('List before modifying: ', values)
ages['Nik'] = 34
print('List after modifying: ', values)

# Returns:
# List before modifying:  ['datagy', '.io', {'Nik': 33}]
# List after modifying:  ['datagy', '.io', {'Nik': 34}]

Hãy chia nhỏ những gì chúng ta đang làm trong khối mã ở trên

  1. Chúng tôi khai báo từ điển và danh sách của chúng tôi, như trước đây
  2. Sau đó, chúng tôi nối từ điển vào danh sách mà không sao chép nó
  3. Sau đó, chúng tôi in danh sách
  4. Chúng tôi sửa đổi một trong các giá trị trong từ điển bằng cách gán trực tiếp
  5. Sau đó, chúng tôi in lại các giá trị

Chúng ta có thể thấy rằng điều này mang lại một số kết quả bất ngờ. Chúng tôi đã cập nhật từ điển bên ngoài danh sách, nhưng từ điển bên trong danh sách vẫn cập nhật

Đây là lý do tại sao chúng tôi cần tạo một bản sao của từ điển trước khi thêm nó vào. Khi chúng ta chỉ đơn giản nối thêm từ điển, nó sẽ nối thêm tham chiếu của đối tượng vào danh sách. Từ điển, mặt khác, thực sự chỉ là một tài liệu tham khảo. Điều này có nghĩa là nó chia sẻ cùng một vị trí trong bộ nhớ và nếu một cái được cập nhật, cái kia cũng được cập nhật

Bằng cách nối thêm bản sao, tham chiếu bị hỏng. Điều này đảm bảo rằng khi chúng tôi cập nhật một trong các từ điển, từ điển kia cũng không được cập nhật. Trên thực tế, hai từ điển sau đó không còn chia sẻ cùng một vị trí trong bộ nhớ, giúp thao tác an toàn hơn nhiều

Phần kết luận

Trong hướng dẫn này, bạn đã học cách nối thêm từ điển vào danh sách trong Python. Mặc dù nó có vẻ giống như một nhiệm vụ tầm thường, nhưng có một số phức tạp đối với nó do bản chất của cách Python cố gắng tiết kiệm bộ nhớ

Bạn đã học cách nối từ điển vào danh sách bằng cách sử dụng phương pháp .append() và phương pháp

# Appending a Dictionary to a List in Python
values = ['datagy', '.io']
ages = {'Nik': 33}

values.append(ages.copy())
print(values)

# Returns:
# ['datagy', '.io', {'Nik': 33}]
1. Điều này đảm bảo rằng các giá trị của từ điển được thêm vào, thay vì tham chiếu đến từ điển. Từ đó, bạn đã biết lý do tại sao quá trình này là cần thiết, bằng cách xem qua một ví dụ về điều gì sẽ xảy ra khi bạn không sao chép từ điển lần đầu tiên

Bạn có thể thêm từ điển vào danh sách Python không?

Có, append hoạt động cho từ điển trong Python . Điều này có thể được thực hiện bằng hàm update() và toán tử [].

Làm cách nào để nối thêm từ điển trong Python?

Phương pháp 1. Sử dụng dấu += trên khóa có giá trị trống .

Tôi có thể sử dụng += để thêm vào danh sách trong Python không?

Bạn có thể thêm một mục (phần tử) vào danh sách bằng append() và insert() và thêm một danh sách khác vào danh sách bằng extension() , + , += . , and slice.

Làm cách nào để lưu trữ các giá trị từ điển trong danh sách bằng 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)