Hướng dẫn can python dictionaries have multiple values? - từ điển python có nhiều giá trị không?

Trong bài viết này, chúng tôi sẽ thảo luận về cách tạo và quản lý một từ điển trong đó các khóa có thể có nhiều giá trị.


Trong Python, nếu chúng ta muốn một từ điển trong đó một khóa có nhiều giá trị, thì chúng ta cần liên kết một đối tượng với mỗi khóa là giá trị. Đối tượng giá trị này nên có khả năng có các giá trị khác nhau bên trong nó. Chúng ta có thể sử dụng một tuple hoặc một danh sách làm giá trị trong từ điển để liên kết nhiều giá trị với một khóa.

Hãy để hiểu nó bằng một số ví dụ,

Tạo một từ điển với một danh sách là giá trị

# Create a dictionary where multiple values are
# associated with a key
word_freq = {'is': [1, 3, 4, 8, 10],
             'at': [3, 10, 15, 7, 9],
             'test': [5, 3, 7, 8, 1],
             'this': [2, 3, 5, 6, 11],
             'why': [10, 3, 9, 8, 12]}

Trong từ điển này, các khóa là các chuỗi và với mỗi chuỗi khóa, chúng tôi có một danh sách các số được liên kết như một trường giá trị. Vì vậy, về cơ bản, trong từ điển này, nhiều giá trị được liên kết với một khóa.

Những thứ liên quan,

Quảng cáo

  • Từ điển trong Python là gì và tại sao chúng ta cần nó?
  • Làm thế nào để tạo một từ điển trong Python?
  • Làm thế nào để chuyển đổi một danh sách thành từ điển trong Python?
  • Một từ điển có thể có các khóa trùng lặp trong Python không?

Nhận được nhiều giá trị của một khóa trong từ điển

Khi chúng tôi chọn một khóa trong từ điển này, nó sẽ cho giá trị của khóa đó. Trong trường hợp này, nó sẽ là một danh sách,

# Create a dictionary where multiple
# values are associated with a key
word_freq = {'is'   : [1, 3, 4, 8, 10],
             'at'   : [3, 10, 15, 7, 9],
             'test' : [5, 3, 7, 8, 1],
             'this' : [2, 3, 5, 6, 11],
             'why'  : [10, 3, 9, 8, 12] }


# Get multiple values of a key as list
value_list = word_freq['at']

print['Values of key "at" are:']
print[value_list]

Output:

Values of key "at" are:
[3, 10, 15, 7, 9]

Chúng tôi đã chọn mục từ từ điển trong đó khóa là ‘At và sau đó in tất cả các giá trị liên quan đến khóa này.

Đọc thêm về tìm kiếm nội dung trong từ điển,

  • Làm thế nào để có được tất cả các phím từ một từ điển?
  • Làm thế nào để có được tất cả các giá trị từ một từ điển?
  • Làm thế nào để tìm khóa theo giá trị trong từ điển?
  • Làm thế nào để lọc một từ điển dựa trên các điều kiện?

Nối nhiều giá trị vào một khóa trong từ điển

Tạo một từ điển với nhiều giá trị cho một khóa rất dễ dàng, nhưng phần khó khăn là nối thêm các giá trị khác nhau cho các phím.
Let’s understand by an example,

Giả sử chúng ta muốn thêm ba giá trị 20, 21, 22, cho một khóa trong từ điển. Chúng ta cần đảm bảo rằng nếu khóa đã tồn tại trong từ điển hay không.

  • Nếu có, thì hãy nối các giá trị mới này vào các giá trị hiện có của khóa.
  • Nếu không, sau đó và thêm một danh sách trống làm giá trị cho khóa đó và sau đó thêm các giá trị này trong danh sách đó.

Chúng tôi đã tạo ra một chức năng để thực hiện tất cả các công cụ đề cập ở trên,

def add_values_in_dict[sample_dict, key, list_of_values]:
    ''' Append multiple values to a key in 
        the given dictionary '''
    if key not in sample_dict:
        sample_dict[key] = list[]
    sample_dict[key].extend[list_of_values]
    return sample_dict

Bây giờ, hãy để sử dụng chức năng này để thêm nhiều giá trị cho một khóa,

word_freq = {'is'   : [1, 3, 4, 8, 10],
             'at'   : [3, 10, 15, 7, 9],
             'test' : [5, 3, 7, 8, 1],
             'this' : [2, 3, 5, 6, 11],
             'why'  : [10, 3, 9, 8, 12] }

# Append multiple values for existing key 'at'
word_freq = add_values_in_dict[word_freq, 'at', [20, 21, 22]]

print['Contents of the dictionary: ']
print[word_freq]

Output:

{'is': [1, 3, 4, 8, 10],
 'at': [3, 10, 15, 7, 9, 20, 21, 22],
 'test': [5, 3, 7, 8, 1],
 'this': [2, 3, 5, 6, 11],
 'why': [10, 3, 9, 8, 12] }

Trong ví dụ này, Key ‘At, đã tồn tại trong từ điển; Do đó, nó đã thêm các giá trị mới trong danh sách các giá trị hiện có cho khóa ‘tại tại.

Ví dụ 2:

# Append multiple values for a new key 'here'
word_freq = add_values_in_dict[word_freq, 'here', [10, 11, 12]]

print['Contents of the dictionary: ']
print[word_freq]

Output:

{'is': [1, 3, 4, 8, 10],
 'at': [3, 10, 15, 7, 9, 20, 21, 22],
 'test': [5, 3, 7, 8, 1],
 'this': [2, 3, 5, 6, 11],
 'why': [10, 3, 9, 8, 12],
 'here': [10, 11, 12] }

Trong ví dụ này, chìa khóa ’ở đây không tồn tại trong từ điển; Do đó, nó đã thêm khóa mới cùng với danh sách các giá trị được cung cấp.

Đọc thêm,

  • Làm thế nào để thêm các cặp khóa/giá trị vào một từ điển trong Python?
  • Làm thế nào để lặp lại một từ điển trong Python?

Tìm kiếm giá trị trong từ điển với nhiều giá trị cho một khóa

Giả sử chúng ta muốn kiểm tra xem một giá trị có tồn tại trong từ điển trong đó nhiều giá trị được liên kết với một khóa không. Sau đó, chúng tôi cũng muốn có được một danh sách các khóa chứa giá trị đã cho của chúng tôi. Hãy để xem cách làm điều này,

word_freq = {'is'   : [1, 3, 4, 8, 10],
             'at'   : [3, 10, 15, 7, 9],
             'test' : [5, 3, 7, 8, 1],
             'this' : [2, 3, 5, 6, 11],
             'why'  : [10, 3, 9, 8, 12] }


# Check if a value exist in dictionary with multiple value
value = 10

# Get list of keys that contains the given value
list_of_keys = [key
                for key, list_of_values in word_freq.items[]
                if value in list_of_values]

if list_of_keys:
    print[list_of_keys]
else:
    print['Value does not exist in the dictionary']

Output:

['is', 'at', 'why']

Sử dụng danh sách hiểu, chúng tôi đã lặp lại trên tất cả các cặp giá trị khóa trong từ điển. Đối với mỗi cặp, chúng tôi kiểm tra xem giá trị đã cho có tồn tại trong danh sách các giá trị được liên kết với khóa này hay không. Nếu có, thì hãy đặt khóa đó vào một danh sách riêng được theo dõi bởi danh sách hiểu. Cuối cùng, chúng tôi có danh sách các khóa chứa giá trị 10.

Conclusion:

Vì vậy, đây là cách chúng ta có thể liên kết nhiều giá trị với một khóa trong từ điển. Tương tự, đối với các hoạt động khác như tìm kiếm và xóa các phần tử khỏi loại từ điển này, chúng ta cần đảm bảo rằng nó xử lý thực tế rằng các giá trị trong từ điển là liệt kê đối tượng và chứa nhiều giá trị.

Từ điển Python có thể có nhiều giá trị không?

Ý tưởng chung: Trong Python, nếu chúng ta muốn một từ điển có nhiều giá trị cho một khóa duy nhất, chúng ta cần lưu trữ các giá trị này trong thùng chứa của riêng chúng trong từ điển.Để làm như vậy, chúng ta cần sử dụng một thùng chứa làm giá trị và thêm nhiều giá trị của chúng ta vào container đó.Các thùng chứa phổ biến là danh sách, bộ dữ liệu và bộ.if we want a dictionary to have multiple values for a single key, we need to store these values in their own container within the dictionary. To do so, we need to use a container as a value and add our multiple values to that container. Common containers are lists, tuples, and sets.

Từ điển có thể có nhiều loại dữ liệu Python 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.Mặt khác, các giá trị có thể là bất kỳ loại nào và có thể được sử dụng nhiều lần.lists and dictionaries are mutable. Values, on the other hand, can be any type and can be used more than once.

Từ điển có thể có nhiều loại dữ liệu?

Người ta chỉ có thể đặt một loại đối tượng vào từ điển.Nếu một người muốn đặt nhiều loại dữ liệu vào cùng một từ điển, ví dụ:Đối với thông tin cấu hình hoặc các cửa hàng dữ liệu phổ biến khác, siêu lớp của tất cả các loại dữ liệu được giữ có thể được sử dụng để xác định từ điển.. If one wants to put a variety of types of data into the same dictionary, e.g. for configuration information or other common data stores, the superclass of all possible held data types must be used to define the dictionary.

Bài Viết Liên Quan

Chủ Đề