Cách lưu trữ nhiều giá trị trong từ điển bằng Python

Một từ điển có thể được định nghĩa là một bộ khóa. cặp giá trị trong đó các khóa là duy nhất cho một từ điển nhất định

Multidict là gì?

Multidict là một từ điển trong đó một số giá trị được ánh xạ tới một khóa

Ở đây, khóa 'd' có 2 phần tử và khóa 'e' có 3 phần tử. Tạo một multidict

Hãy nghĩ rằng bạn có một bộ chứa ba loại rau và năm loại trái cây

Mỗi trong số này có thể loại tương ứng của họ được đề cập

Chỉ nhìn vào những cặp này thì rất khó biết đâu là rau, đâu là trái cây. Do đó, chúng tôi muốn sắp xếp thứ này một cách độc đáo để chúng tôi có thể thấy rõ cái nào là rau và cái nào là trái cây

Cách tốt nhất là tạo một multidic như dưới đây

Ví dụ về multidict

Làm thế nào bạn có thể làm từ điển như đã thấy ở trên?

Có một cách khó khăn và một cách dễ dàng để làm điều này. Đầu tiên tôi sẽ giải thích cặn kẽ để bạn biết điều gì thực sự xảy ra bên trong

Cách khó

Đầu tiên, chúng tôi tạo một từ điển trống có tên là food_dict

Sau đó, trong một vòng lặp for, chúng tôi giải nén từng bộ một dưới dạng khóa và giá trị

Hai điều xảy ra bên trong vòng lặp này

Đầu tiên là trong khi lặp qua các cặp, chúng tôi kiểm tra xem khóa đã tồn tại trong từ điển food_dict của chúng tôi chưa. Nếu nó không có trong từ điển, chúng tôi tạo một khóa mới và một danh sách trống được ánh xạ tới khóa đó

Thứ hai là chúng tôi nối từng giá trị vào khóa tương ứng của chúng trong mỗi lần lặp

Đầu ra như dưới đây

Bây giờ hãy xem cách dễ dàng để làm điều này

Cách dễ dàng

Cách dễ dàng là sử dụng defaultdict từ thư viện bộ sưu tập

Điều xảy ra bên trong defaultdict là khi bạn cố gắng tìm một khóa, nếu khóa không có trong từ điển, nó sẽ tạo một mục nhập mới thay vì đưa ra lỗi

Sau đó, như được thấy bên dưới, bạn có thể tạo một multidict

Ở đây, nhiều giá trị được lưu trữ trong một danh sách. Bạn cũng có thể sử dụng một bộ cho mục đích này. Sự lựa chọn phụ thuộc vào cách bạn muốn từ điển của mình

Sử dụng danh sách nếu bạn muốn giữ các giá trị theo thứ tự chúng được thêm vào

Sử dụng một bộ nếu bạn chỉ muốn các giá trị duy nhất và thứ tự chúng được thêm vào không quan trọng

Ví dụ, giả sử rằng bạn có các cặp giá trị trong đó mỗi sinh viên đã chỉ ra chủ đề và tên của nhóm mà họ thuộc về

Bạn muốn biết tên nhóm duy nhất cho từng chủ đề

Để làm điều này, bạn có thể tạo một multidict với một bộ chứa

Bây giờ bạn có thể thấy rõ các tên nhóm duy nhất dành cho mỗi chủ đề là gì

Ghi chú. Bạn phải sử dụng phương pháp có liên quan để thêm giá trị vào vùng chứa. Đối với danh sách, phương thức chắp thêm được sử dụng và đối với bộ, phương thức thêm được sử dụng

Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện

Trên mỗi lần lặp, chúng tôi truy cập khóa hiện tại và trả về giá trị tương ứng

Danh sách mới chỉ chứa các giá trị của các khóa được chỉ định

Nếu bạn sử dụng ký hiệu ngoặc để truy cập một khóa không tồn tại trong từ điển, một ngoại lệ KeyError sẽ được đưa ra

Bạn có thể sử dụng câu lệnh if để kiểm tra xem khóa có trong từ điển hay không trước khi truy cập nó

Chúng tôi chỉ sử dụng ký hiệu ngoặc để truy cập khóa nếu nó tồn tại trong từ điển

Bằng cách này, chúng tôi sẽ không nhận được ngoại lệ KeyError ngay cả khi một số khóa không tồn tại

Ngoài ra còn có một phương pháp dict.get[]. Theo mặc định, phương thức trả về None cho các khóa không tồn tại

mệnh lệnh. phương thức get trả về giá trị cho khóa đã cho nếu khóa đó có trong từ điển, nếu không thì trả về giá trị mặc định

Phương thức nhận 2 tham số sau

NameDescriptionkeyKhóa để trả về giá trịdefaultGiá trị mặc định được trả về nếu khóa được cung cấp không có trong từ điển [tùy chọn]

Nếu giá trị cho tham số default không được cung cấp, thì giá trị này sẽ mặc định là None, vì vậy phương thức get[] không bao giờ tăng giá trị KeyError

Nếu bạn cần chỉ định giá trị mặc định cho các khóa không tồn tại, hãy chuyển đối số thứ hai trong lệnh gọi phương thức dict.get[]

Ngoài ra, bạn có thể sử dụng vòng lặp if0

Nhận nhiều giá trị từ một từ điển bằng vòng lặp for #

Để nhận nhiều giá trị từ một từ điển

  1. Sử dụng vòng lặp if0 để lặp lại bộ sưu tập khóa
  2. Sử dụng phương pháp if2 để nối giá trị của từng khóa vào danh sách
  3. Danh sách mới sẽ chỉ chứa các giá trị của các khóa được chỉ định

Chúng tôi đã sử dụng vòng lặp if0 để lặp lại bộ sưu tập khóa

Trên mỗi lần lặp lại, chúng tôi kiểm tra xem khóa có trong từ điển hay không và sử dụng phương thức if2 để thêm giá trị của nó vào danh sách mới

Danh sách. Phương thức append[] thêm một mục vào cuối danh sách

Ngoài ra, bạn có thể sử dụng phương pháp dict.get[] để truy cập từng khóa

Đảm bảo chuyển đối số thứ hai cho phương thức dict.get[] nếu bạn cần chỉ định giá trị mặc định cho các khóa không tồn tại

Từ điển có nhiều giá trị cho mỗi Khóa trong Python #

Để thêm nhiều giá trị cho mỗi khóa trong từ điển

  1. Lưu trữ các giá trị trong một danh sách
  2. Sử dụng ký hiệu ngoặc để thêm khóa vào từ điển
  3. Đặt khóa cho danh sách các giá trị

Chúng tôi đã sử dụng ký hiệu ngoặc để thêm khóa if7 vào từ điển và đặt khóa thành if8 giá trị

Nếu bạn cần thêm một giá trị mới vào khóa cụ thể, hãy truy cập khóa đó và sử dụng phương pháp if2

Danh sách. Phương thức append[] thêm một mục vào cuối danh sách

Nếu bạn cần thêm nhiều giá trị cùng lúc vào một khóa hiện có, hãy sử dụng phương thức KeyError0

Danh sách. phương thức mở rộng có thể lặp lại và mở rộng danh sách bằng cách nối thêm tất cả các mục từ có thể lặp lại

Ngoài ra, bạn có thể sử dụng phương pháp KeyError1

Từ điển có nhiều giá trị cho mỗi Khóa bằng cách sử dụng KeyError1 #

Để thêm nhiều giá trị cho mỗi khóa vào từ điển

  1. Sử dụng phương thức KeyError1 để đặt giá trị mặc định của khóa thành danh sách
  2. Sử dụng phương thức KeyError0 để thêm nhiều giá trị vào khóa

Phương thức setdefault lấy một khóa và một giá trị mặc định làm đối số

Nếu khóa nằm trong từ điển, phương thức sẽ trả về giá trị của nó

Nếu khóa không có trong từ điển, phương thức sẽ chèn khóa với giá trị đã chỉ định

Nếu bạn có nhiều khóa mà bạn muốn khởi tạo thành một danh sách trống [hoặc bất kỳ giá trị nào khác], bạn có thể sử dụng vòng lặp if0

Chúng tôi đã sử dụng vòng lặp if0 để lặp lại danh sách các khóa

Trên mỗi lần lặp lại, chúng tôi sử dụng phương pháp KeyError7 để đặt danh sách trống làm giá trị mặc định cho khóa hiện tại

Phương thức KeyError8 chủ yếu được sử dụng khi bạn có một từ điển trống và biết tên của tất cả các khóa mà từ điển sẽ lưu trữ

Nếu bạn không biết trước tên của các khóa, hãy sử dụng lớp KeyError9 để thay thế

Từ điển có nhiều giá trị cho mỗi Khóa bằng cách sử dụng KeyError9 #

Để thêm nhiều giá trị cho mỗi khóa vào từ điển

  1. Sử dụng lớp KeyError9 để đặt danh sách làm giá trị mặc định cho các khóa của từ điển
  2. Truy cập trực tiếp vào bất kỳ khóa nào trong từ điển và thêm giá trị cho nó bằng phương thức KeyError0

Chúng tôi đã chuyển lớp dict.get[]3 sang lớp KeyError9 để sử dụng danh sách làm giá trị mặc định cho các khóa không tồn tại trong từ điển

Đối số đầu tiên mà lớp defaultdict nhận là một hàm trả về giá trị mặc định cho tất cả các khóa

Lớp KeyError9 trả về giá trị mặc định đã chỉ định khi truy cập khóa không tồn tại

Nếu bạn truy cập một khóa không tồn tại trong từ điển thông thường, bạn sẽ nhận được một ngoại lệ KeyError

Nếu bạn phải đặt một danh sách làm giá trị mặc định cho một từ điển hiện có, hãy chuyển đối số thứ hai cho lớp dict.get[]7

Đối số thứ hai mà lớp KeyError9 nhận là tùy chọn và có thể là từ điển hoặc danh sách các cặp khóa-giá trị

Bạn có thể có 3 mục trong từ điển python không?

Bạn có thể thêm bao nhiêu mục tùy thích .

Một từ điển có thể có hai giá trị?

Multidict là từ điển trong đó một số giá trị được ánh xạ tới một khóa . Ở đây, khóa 'd' có 2 phần tử và khóa 'e' có 3 phần tử.

Làm cách nào để lặp lại nhiều giá trị trong từ điển Python?

Có nhiều cách để lặp lại một từ điển trong Python. .
Khóa truy cập bằng cách sử dụng bản dựng. phím[]
Phím truy cập mà không cần sử dụng phím[]
Lặp lại tất cả các giá trị bằng cách sử dụng. giá trị[]
Lặp lại tất cả các cặp khóa và giá trị bằng cách sử dụng items[]
Truy cập cả khóa và giá trị mà không cần sử dụng items[]
In các mục trong Khóa-Giá trị theo cặp

Chủ Đề