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

Trong bài viết này, chúng ta sẽ xem xét cách nối các giá trị vào từ điển trong Python, vì vậy hãy bắt đầu bằng cách làm rõ từ điển Python thực sự là gì

Làm cách nào để nối các giá trị vào từ điển trong Python?

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

Xem video này trên YouTube

Khái niệm cơ bản về từ điển

Không giống như các loại dữ liệu khác chỉ chứa một giá trị dưới dạng phần tử, từ điển được sử dụng để lưu trữ giá trị dữ liệu theo cặp khóa-giá trị, trong đó khóa được ánh xạ tới giá trị được liên kết của nó. Trong khi các giá trị của từ điển có thể thuộc bất kỳ loại nào (kể cả danh sách), các khóa phải là bất biến, chẳng hạn như chuỗi, số hoặc bộ

Về mặt cú pháp, một từ điển được xác định bằng cách đặt một danh sách các cặp khóa-giá trị được phân tách bằng dấu phẩy trong dấu ngoặc nhọn ( i. e.

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
3). Một dấu hai chấm (. ) được sử dụng để phân tách từng khóa khỏi giá trị được liên kết của nó và dấu phẩy (,) để phân tách từng cặp khóa/giá trị. Một  từ điển được định nghĩa là được sắp xếp theo thứ tự (kể từ Python v 3. 7), có thể thay đổi và không cho phép trùng lặp

Hãy tạo một từ điển Python đơn giản, sử dụng một chuỗi đơn giản, một số nguyên và một danh sách làm giá trị ví dụ

students={'name': 'John', 'age': 18, 'course': ['Maths']}
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths']}

Vì vậy, bây giờ chúng tôi có từ điển mẫu của mình, hãy xem cách chúng tôi có thể nối thêm, tôi. e. , thêm, các giá trị vào đây

Phương pháp 1. Dấu ngoặc vuông và ký hiệu chỉ số

Để thêm toàn bộ cặp khóa/giá trị vào từ điển hiện có, chúng ta có thể sử dụng tên từ điển theo sau là tên khóa trong ngoặc vuông rồi gán giá trị liên quan cho từ điển đó

Điều này có lẽ được minh họa rõ nhất bằng một ví dụ, trong đó chúng tôi muốn thêm khóa '

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
4' và giá trị '
students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
5' vào từ điển của mình

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}

Nếu chúng tôi có một khóa hiện có và chúng tôi chỉ muốn cập nhật giá trị được liên kết, chúng tôi cũng có thể thực hiện việc này bằng phương pháp dấu ngoặc vuông

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}

Với phương pháp này, chúng ta cũng có thể sử dụng toán tử '

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
6' để nối thêm vào một giá trị hiện có. Ví dụ: nếu chúng tôi muốn thêm một mục danh sách vào khóa 'khóa học', chúng tôi có thể thực hiện như sau

students['course'] += ['Science']
print(students) 

{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith'}

Lưu ý rằng khi chúng tôi thêm một mục danh sách, nó cần được định dạng chính xác như vậy (

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
7)

Tương tự, nếu chúng ta muốn thêm một chuỗi vào khóa ‘

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
4’, chẳng hạn để làm cho nó có dấu gạch nối, chúng ta cũng có thể làm điều này

students['surname'] += '-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith-Jones'}

Phương pháp 2. mệnh lệnh. cập nhật()

Ngoài ra, chúng ta có thể sử dụng phương thức từ điển Python tích hợp,

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
9, để thêm các mục mới vào một từ điển đã chỉ định. Phương pháp này có thể được sử dụng để nối thêm nhiều cặp khóa/giá trị mới nếu chúng chưa tồn tại hoặc để cập nhật khóa hiện có bằng một giá trị mới

Hãy bắt đầu bằng cách xem xét việc thêm các giá trị khóa/cặp mới, trong ví dụ bên dưới, chúng tôi sẽ thêm các khóa '

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
0'  và '
students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
1' vào từ điển của chúng tôi cùng với các giá trị được liên kết của chúng.  

students.update({'city': 'London', 'test_score': 88.5})
print(students)
	
{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith-Jones', 'city': 'London', 'test_score': 88.5}

Chúng tôi cũng có thể sử dụng phương pháp này để chỉ cập nhật và thay thế giá trị của một khóa hiện có trong từ điển, thay vì nối thêm một cặp khóa/giá trị hoàn toàn mới

students.update({'name': 'Bob'})
print(students)

{'name': 'Bob', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith-Jones', 'city': 'London', 'test_score': 88.5}

Xin lưu ý rằng phương pháp này sẽ ghi đè lên bất kỳ giá trị hiện có nào, vì vậy chúng tôi cần cẩn thận khi sử dụng nó. Nếu chúng tôi nhìn vào khóa '

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
2' của mình, nếu chúng tôi muốn nối thêm (i. e. , thêm) một chủ đề khác, ví dụ, ‘_______5_______3’ phương pháp này sẽ không hiệu quả

students.update({'course': 'English'})
print(students)

{'name': 'Bob', 'age': 18, 'course': 'English', 'surname': 'Smith', 'city': 'London', 'test_score': 88.5}

Điều này được thực hiện để minh họa rằng phương thức

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
4 ghi đè thay vì nối thêm. Tuy nhiên, xin lưu ý rằng trong phần còn lại của bài viết, chúng tôi sẽ giả định rằng khóa '
students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
2' chứa danh sách
students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
6 như đã trình bày trước đó

Phương pháp 3. nối thêm ()

Ngoài phương thức

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
4 tích hợp sẵn, Python còn có phương thức
students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
8 tích hợp sẵn

Tại thời điểm này, bạn có thể thắc mắc tại sao bài viết không bắt đầu bằng điều này, vì nó phải thực hiện chính xác những gì chúng tôi đang cố gắng đạt được

Mặc dù

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
9 chắc chắn là hữu ích, nhưng điều quan trọng cần lưu ý là phương thức này chỉ hoạt động nếu khóa đã được xác định và giá trị mà chúng ta đang thêm vào là một đối tượng danh sách

Điều này có nghĩa là nếu chúng ta cố gắng sử dụng phương thức

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
9 trên một giá trị chuỗi hoặc số nguyên, Python sẽ trả về lỗi

students['name'].append('Henry'}
print(students)

AttributeError: 'str' object has no attribute 'append'

Tuy nhiên, nếu bây giờ chúng tôi sử dụng phương thức này trên khóa '

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
2', trong đó giá trị được liên kết là kiểu dữ liệu danh sách chứa các chủ đề, chúng tôi sẽ nhận được thông tin sau

students['course'].append('English'}
print(students)

{'name': 'Bob', 'age': 18, 'course': ['Maths', 'Science', 'English'], 'surname': 'Smith-Jones', 'city': 'London', 'test_score': 88.5}

Vì vậy, mỗi khi chúng tôi gọi

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
9 trong danh sách hiện có trong từ điển của chúng tôi, nó sẽ thêm một mục mới vào cuối (hoặc phía bên tay phải) của danh sách. Chúng ta có thể sử dụng phương thức này để thêm bất kỳ loại đối tượng nào chúng ta muốn vào một danh sách nhất định

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
0

Phương pháp 4. mở rộng()

Như chúng ta đã thấy, phương pháp

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
9 chỉ có thể được sử dụng khi chúng ta đang tìm cách thêm vào một giá trị danh sách hiện có trong từ điển của mình

Phương pháp

students['course'] += ['Science']
print(students) 

{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith'}
4 tiến thêm một bước và chỉ hoạt động khi chúng tôi đang tìm cách thêm danh sách vào danh sách hiện có trong từ điển của chúng tôi i. e. chúng tôi không thể thêm số nguyên, chuỗi hoặc các loại dữ liệu khác

Ví dụ: nếu chúng tôi đang tìm cách mở rộng giá trị '
students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
2' (là một danh sách) với một chủ đề khác, chẳng hạn như '
students['course'] += ['Science']
print(students) 

{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith'}
6', thì chúng tôi cần đảm bảo điều này được chỉ định dưới dạng một mục danh sách

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
1

Mặc dù đáng để biết phương pháp này tồn tại, nhưng nó chỉ phù hợp nếu chúng ta muốn nối thêm các mục danh sách vào các mục danh sách hiện có, vì vậy việc sử dụng bị hạn chế. Nếu chúng tôi cố gắng sử dụng

students['course'] += ['Science']
print(students) 

{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith'}
7 mà không có mục danh sách, e. g một đối tượng chuỗi tiêu chuẩn, nó sẽ cố gắng chuyển đổi đối tượng thành một danh sách

students['surname']='Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Jones'}
2

Bản tóm tắt

Trong bài viết này, chúng tôi đã đưa ra một số giả định chính với mục đích 'Nối các giá trị vào từ điển trong Python'. Cụ thể là định nghĩa của chúng tôi về 'nối thêm' về cơ bản là thêm vào và thuật ngữ 'giá trị' trong tiêu đề của chúng tôi đề cập đến giá trị trong cặp khóa/giá trị của một phần tử từ điển. Do đó, chúng tôi chưa xem xét cách chỉ thêm khóa

Chúng tôi đã thấy rằng có nhiều cách khác nhau để thêm các giá trị vào một từ điển hiện có. Cả hai phương thức

students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
9 và
students['course'] += ['Science']
print(students) 

{'name': 'John', 'age': 18, 'course': ['Maths', 'Science'], 'surname': 'Smith'}
7 đều bị hạn chế sử dụng vì cả hai đều cần các giá trị liên quan nằm trong danh sách và như chúng ta đã thấy từ điển có thể có nhiều loại dữ liệu khác nhau. Phương pháp
students['surname']='Smith-Jones'
print(students)

{'name': 'John', 'age': 18, 'course': ['Maths'], 'surname': 'Smith-Jones'}
4 khắc phục được vấn đề này, nhưng nó sẽ ghi đè thay vì 'chắp thêm' bất kỳ giá trị hiện có nào, vì vậy người dùng nên tiến hành một cách thận trọng

Phương pháp dấu ngoặc vuông, trong khi được cho là cơ bản nhất, dường như là linh hoạt nhất vì nó cho phép chúng ta thêm, cập nhật và nối các giá trị

lập trình viên

👱‍♀️ Lập trình viên 1. Chúng ta có một vấn đề
🧔‍♂️ Lập trình viên 2. Hãy sử dụng RegEx
👱‍♀️ Lập trình viên 1. Bây giờ chúng ta có hai vấn đề

… chưa hết – bạn có thể dễ dàng giảm hai vấn đề này xuống 0 khi hoàn thiện “Siêu năng lực RegEx trong Python” của mình. 🙂

Làm cách nào để gán giá trị danh sách cho từ điển trong Python?

Để chuyển đổi danh sách thành từ điển sử dụng các giá trị giống nhau, bạn có thể sử dụng lệnh. phương thức fromkeys() . Để chuyển đổi hai danh sách thành một từ điển, bạn có thể sử dụng hàm zip() của Python. Khả năng hiểu từ điển cho phép bạn tạo một từ điển mới dựa trên các giá trị của danh sách.

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

Để nối thêm một phần tử vào một từ điển hiện có, bạn phải sử dụng tên từ điển theo sau là dấu ngoặc vuông với tên khóa và gán giá trị cho nó