Hướng dẫn can a list be a value in a dictionary python - một danh sách có thể là một giá trị trong một từ điển python

Cho đến bây giờ, chúng tôi đã thấy các cách để tạo từ điển theo nhiều cách và các hoạt động khác nhau trên khóa và giá trị trong từ điển. Bây giờ, hãy để Lôi thấy những cách khác nhau để tạo ra một từ điển danh sách.

Lưu ý rằng việc hạn chế với các khóa trong từ điển Python chỉ có thể sử dụng các loại dữ liệu bất biến làm khóa, điều đó có nghĩa là chúng ta không thể sử dụng từ điển danh sách như một key.

myDict = {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}0{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}1{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}3{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}4{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}5{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}6

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}8

Output:

TypeError: unhashable type: 'list'

Nhưng điều tương tự có thể được thực hiện rất khôn ngoan với từ điển {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}9in. Hãy cùng xem tất cả các cách khác nhau mà chúng ta có thể tạo ra một từ điển danh sách.

Phương pháp số 1: Sử dụng chỉ số Using subscript

myDict = {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}2

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}3{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}4{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}5= {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}1__12

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}3{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}3{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}5= {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}7{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}7__12

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}8

Output:

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}

& nbsp; Phương thức #2: Thêm danh sách lồng nhau làm giá trị bằng phương thức append ().
Method #2: Adding nested list as value using append() method.

Tạo một danh sách mới và chúng tôi chỉ có thể nối danh sách đó vào giá trị.

myDict = {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}2

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}3{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}4{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}5= {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}1__12

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}3{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}3{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}5= {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}7{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}7__12

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}3{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}4{'[["Geeks", 1], ["For", 2], ["Geeks", 3]]': 'converted'}8

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}8

Output:

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}

& nbsp; Phương thức #2: Thêm danh sách lồng nhau làm giá trị bằng phương thức append ().
Method #3: Using key1 method

Tạo một danh sách mới và chúng tôi chỉ có thể nối danh sách đó vào giá trị.

defaultdict(, {'For': [2], 'Geeks': [1, 3]})7= {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}5{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2{'[["Geeks", 1], ["For", 2], ["Geeks", 3]]': 'converted'}2__12

& NBSP; Phương pháp #3: Sử dụng phương thức key1

Lặp lại danh sách và tiếp tục nối thêm các phần tử cho đến khi sử dụng phương thức key1.

myDict = key5key6

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}03{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}04

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}8

Output:

{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}


Method #4: Using list comprehension

myDict 6 myDict 7myDict 8 myDict 9

=0myDict 6 =2myDict 8

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}32

Output:

{'1': [1, 2], '3': [3, 4], '2': [2, 3]}

& nbsp; Phương pháp #4: Sử dụng danh sách hiểu biết
Method #5: Using defaultdict

Is

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}20myDict 6 myDict 7myDict 8 {'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}7myDict 0{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2myDict 22

& nbsp; Phương pháp #5: Sử dụng DefaultDict

Lưu ý rằng điều tương tự cũng có thể được thực hiện với từ điển đơn giản nhưng sử dụng {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}33 hiệu quả hơn cho các trường hợp đó.

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}34 {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}35{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}36 {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}37

=0{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}63

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}65

Output:

defaultdict(, {'For': [2], 'Geeks': [1, 3]})

defaultdict(, {'For': [2], 'Geeks': [1, 3]})7= {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}40{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}5{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}1{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}44{'[["Geeks", 1], ["For", 2], ["Geeks", 3]]': 'converted'}2{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2
 
Method #6: Using Json

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}53= {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}55{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}56{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}57

& nbsp; Phương pháp #5: Sử dụng DefaultDict

Lưu ý rằng điều tương tự cũng có thể được thực hiện với từ điển đơn giản nhưng sử dụng {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}33 hiệu quả hơn cho các trường hợp đó.

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}34 {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}35{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}36 {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}37

defaultdict(, {'For': [2], 'Geeks': [1, 3]})7= {'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}40{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}5{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}1{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}44{'[["Geeks", 1], ["For", 2], ["Geeks", 3]]': 'converted'}2{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}2

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}7=5key5{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}57

Output:

{'[["Geeks", 1], ["For", 2], ["Geeks", 3]]': 'converted'}

Danh sách có thể được sử dụng làm giá trị từ điển không?

Ví dụ: bạn có thể sử dụng số nguyên, phao, chuỗi hoặc boolean làm khóa từ điển.Tuy nhiên, cả danh sách và từ điển khác đều không thể đóng vai trò là khóa từ điển, bởi vì danh sách và từ điển đều có thể thay đổi.neither a list nor another dictionary can serve as a dictionary key, because lists and dictionaries are mutable.

Một đối tượng có thể là một giá trị trong một python từ điển?

Takeaway: Một khóa từ điển phải là một đối tượng bất biến.Một giá trị từ điển có thể là bất kỳ đối tượng.A dictionary value can be any object.

Tại sao một danh sách không được sử dụng làm khóa cho một giá trị trong một python từ điển?

Trả lời: Array Becuase là một danh sách trong Python có thể thay đổi.Những điều có thể thay đổi không thể được sử dụng một phím Dict trong Python.Bạn chỉ có thể sử dụng những thứ bất biến như chuỗi hoặc tuple làm khóa.Mutable things cant be used a dict keys in python. you can only use immutable things like string , or tuple as key.

Chủ đề