Cách lấy khóa tiếp theo trong từ điển Python

Trên trang này. dict [từ điển], khóa và giá trị từ điển, cập nhật từ điển với mục nhập/giá trị mới,. phím[],. giá trị[],. mặt hàng[]

Bắt đầu

Video Tổng Hợp

  • Phiên bản ban đầu của tập lệnh, phiên bản thứ 2 và phiên bản thứ 3. Shell xuất ra ở đây
  • Từ điển trong Python là một bộ khóa không có thứ tự. cặp giá trị
  • Không giống như danh sách, từ điển vốn không có thứ tự. Chìa khóa. các cặp giá trị dường như theo một thứ tự nhất định nhưng nó không liên quan
  • Mỗi KHÓA phải là duy nhất, nhưng GIÁ TRỊ có thể giống nhau cho hai hoặc nhiều khóa
  • Nếu bạn gán một giá trị cho một khóa thì sau này trong cùng một từ điển có cùng một khóa được gán cho một giá trị mới, giá trị trước đó sẽ bị ghi đè
  • Thay vì sử dụng một số để lập chỉ mục các mục [như bạn làm trong danh sách], bạn phải sử dụng khóa cụ thể, e. g. , bringBackDict['Trav']

Tìm hiểu thêm

  • Có cách nào để thêm mục mới hoặc thay đổi giá trị của khóa không?
  • Có ba phương pháp từ điển để trích xuất dữ liệu nhất định. . keys[] trả về các khóa trong từ điển dưới dạng danh sách và. values[] trả về các giá trị từ điển dưới dạng danh sách. Mặt khác,. items[] trả về cả khóa và giá trị, nhưng dưới dạng danh sách các bộ [khóa, giá trị]
  • Từ điển không có thứ tự, nhưng thường thì cần thiết phải áp đặt một thứ tự nhất định [e. g. , chữ cái] khi xử lý các mục từ điển. Bạn đạt được điều này bằng cách sắp xếp các phím. Xem Sắp xếp để biết chi tiết

Khám phá

Từ điển python là một trong những cấu trúc dữ liệu quan trọng được sử dụng rộng rãi trong khoa học dữ liệu và các nơi khác khi bạn muốn lưu trữ dữ liệu dưới dạng cặp khóa-giá trị. Trong bài đăng này, chúng ta sẽ tìm hiểu sâu về từ điển và cách lặp lại từ điển cũng như tìm hiểu cách sắp xếp giá trị từ điển và các hoạt động khác bằng cách sử dụng cấu trúc dữ liệu từ điển

Về cơ bản, một từ điển trong python là một đối tượng ánh xạ trong đó nó ánh xạ một khóa thành một giá trị. Các khóa là các giá trị có thể băm được ánh xạ tới các giá trị. Các khóa là các giá trị tùy ý và bất kỳ giá trị nào không thể băm là các giá trị chứa danh sách hoặc các loại có thể thay đổi khác đều không được sử dụng làm Khóa. Ngay cả việc sử dụng các giá trị số làm khóa cũng không phải là một cách thực hành tốt.

Làm thế nào để tạo một từ điển?

Chúng ta có thể tạo Từ điển bằng phím. các cặp giá trị được phân tách bằng dấu phẩy hoặc sử dụng hàm tạo dict

Sử dụng cặp giá trị khóa được phân tách bằng dấu phẩy

d = {
"name": "Charlie",
"age": 42,
"city": "NYC",
"state": "NY",
"rank": 1.0 }

Sử dụng hàm tạo dict

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]

Chuyển đổi hai danh sách thành một từ điển

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]

Chuyển đổi danh sách các bộ dữ liệu [Khóa, Giá trị] thành từ điển

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]

Điều gì đã thay đổi đối với từ điển trong Python 3. 6

Từ điển đã được đặt hàng trong Python 3. 6 có nghĩa là nó nhớ thứ tự chèn các cặp khóa và giá trị. Điều đó có nghĩa là các đối số từ khóa hiện có thể được lặp lại theo thứ tự tạo của chúng, về cơ bản là triển khai cpython của python

Việc sử dụng bộ nhớ của việc triển khai từ điển mới này cũng sẽ giảm 20-25% mức sử dụng bộ nhớ

Đây là một ví dụ từ danh sách gửi thư của nhà phát triển python để triển khai lệnh mới trong python 3. 6

Tạo một chức năng để lấy các khóa từ điển

def func[**kw]:
  print[kw.keys[]]

Gọi hàm trên trong Python 3. 5 trở về trước trả về một dict_keys chưa được sắp xếp. Kiểm tra đầu ra các phím được sắp xếp ngẫu nhiên

func[a=1, b=2, c=3, d=4, e=5]

Đầu ra trong Python 3. 5 trở về trước

dict_keys[['c', 'd', 'e', 'b', 'a']] # Keys are randomly ordered

Gọi chức năng tương tự trong python3. 6 trở lên trả về một dict_keys theo thứ tự như nó đã được truyền trong hàm

Đầu ra trong Python 3. 6 trở lên

dict_keys[['a', 'b', 'c', 'd', 'e']] # Keys are ordered

Lặp lại thông qua một từ điển

Là nhà phát triển python hoặc nhà khoa học dữ liệu, bạn sẽ làm việc với từ điển rất nhiều và có những tính toán hoặc hành động cần được thực hiện trong khi làm việc thông qua các khóa và giá trị từ điển

Trong phần này, chúng ta sẽ xem các cách bạn có thể truy xuất dữ liệu từ từ điển là gì

Python hỗ trợ khái niệm lặp qua các vùng chứa và Trình lặp cần xác định hai phương thức. iter[] và next[]. Thông thường, đối tượng tự xác định phương thức next[], vì vậy nó chỉ trả về chính nó dưới dạng iterator

iter xác định phương thức tiếp theo sẽ được gọi bởi các câu lệnh như for và in để tạo ra mục tiếp theo và next[] sẽ tăng ngoại lệ StopIteration khi không còn mục nào nữa

Hy vọng điều này sẽ làm rõ cách hoạt động của trình vòng lặp trên từ điển

Các phương thức này được sử dụng bởi các câu lệnh for và in, vì vậy điều đó có nghĩa là nếu bạn đặt một từ điển trong vòng lặp for thì nó sẽ tự động gọi phương thức iter[] và lặp qua các phím của từ điển

Lặp lại từ điển bằng cách sử dụng các phím

________số 8

đầu ra

name : charlie
age : 42
city : NYC
state : NY
rank : 1.0

Các đối tượng xem từ điển

Điều này cung cấp một cửa sổ của các mục từ điển và khi bất kỳ mục nào thay đổi trong chính tả thì nó sẽ phản ánh những thay đổi đó trong chế độ xem

Theo tài liệu chính thức của python

Các đối tượng được trả về bởi dict. phím [], chính tả. giá trị [] và dict. items[] là các đối tượng xem. Chúng cung cấp chế độ xem động cho các mục nhập của từ điển, có nghĩa là khi từ điển thay đổi, chế độ xem sẽ phản ánh những thay đổi này

Độ dài của từ điển

Điều này trả về số cặp khóa, giá trị trong từ điển

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
0

danh sách các khóa từ điển

hàm keys[] trả về dict_keys[] được gói cùng với danh sách để lấy đối tượng danh sách

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
1

đầu ra

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
2

danh sách các giá trị từ điển

hàm giá trị [] trả về dict_values ​​[] được gói cùng với danh sách để lấy đối tượng danh sách

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
3

đầu ra

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
4

Lặp lại các giá trị dict

dict_values ​​là một iterable nên bạn có thể lặp trực tiếp qua các giá trị của từ điển bằng cách sử dụng vòng lặp for

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
5

đầu ra

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
6

Lặp lại các phím dict

dict_keys có thể lặp lại nên bạn có thể lặp trực tiếp qua các khóa của từ điển bằng cách sử dụng vòng lặp for

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
7

đầu ra

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
8

Lặp lại khóa, cặp giá trị bằng dict. mặt hàng

Điều này trả về một cặp [khóa, giá trị] là một đối tượng tuple

d = dict[ name= "Charlie", age= 42, city = "NYC", state = "NY",rank = 1.0]
9

đầu ra

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
0

Từ điển hiểu

Nó là một phần mở rộng cú pháp để hiểu danh sách. Nó tạo ra một đối tượng từ điển và bạn không thể thêm khóa vào từ điển hiện có bằng cách sử dụng đối tượng này

Bạn nhóm biểu thức bằng cách sử dụng dấu ngoặc nhọn và phần bên trái trước từ khóa for biểu thị cả khóa và giá trị, được phân tách bằng dấu hai chấm

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
1

đầu ra

{'California'. 'Los Angeles', 'Massachusetts'. 'Boston', 'NY'. 'NYC'}

từ điển lấy chìa khóa

lấy [khóa, mặc định]

Phương thức này trả về giá trị cho khóa nếu khóa có trong từ điển, nếu không mặc định. Nếu không cung cấp mặc định, thì giá trị mặc định là 

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
8, do đó phương thức này không bao giờ tăng 
d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
9

Hãy hiểu điều này với một ví dụ nhỏ

Đây là một từ điển của thành phố và các tiểu bang tương ứng

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
2

Chúng tôi phải xuất tên tiểu bang khi người dùng vào thành phố

Khi thành phố có trong Dictionary Key

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
3

đầu ra

Bạn sống ở bang Bắc Carolina

Khi thành phố không có trong Dictionary Key

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
4

đầu ra

Bạn sống ở trạng thái Không

Giải nén từ điển bằng itemgetter

Bạn có thể giải nén từ điển bằng toán tử. itemgetter[] hữu ích nếu bạn muốn lấy các giá trị từ từ điển được cung cấp một loạt khóa

Hãy xem ví dụ dưới đây, chúng tôi đang trích xuất các giá trị của khóa a, b và c bằng cách sử dụng itemgetter

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
5

Sắp xếp

Có một số tình huống mà bạn cần sắp xếp từ điển theo khóa hoặc giá trị. Bạn có thể đạt được điều này bằng cách sử dụng hàm sorted[]. Trong phần bên dưới, chúng ta sẽ xem cách sắp xếp từ điển theo khóa và giá trị

nếu bạn đang sử dụng python 3. 6 trở lên thì đừng lo lắng, từ điển được sắp xếp theo cấu trúc dữ liệu và có thể dễ dàng sắp xếp bằng cách sử dụng hàm sorted[] bên trong phần hiểu từ điển

Sắp xếp từ điển theo phím

Bạn có thể chuyển toàn bộ từ điển dict_items làm đối số cho hàm được sắp xếp và nó sẽ trả về danh sách các bộ dữ liệu sau khi sắp xếp có thể được chuyển đổi trở lại từ điển bằng cách sử dụng hàm tạo dict

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
6

đầu ra

{'MỘT'. 4, 'B'. 10}

Bạn có thể thấy đầu ra các khóa từ điển được sắp xếp theo thứ tự bảng chữ cái

Sắp xếp từ điển theo giá trị

Bạn cũng có thể sắp xếp từ điển với các giá trị của chúng bằng cách sử dụng hàm sorted[] và một đối số khác, khóa và giá trị của tham số key phải là một hàm nhận một đối số duy nhất và trả về một khóa để sử dụng cho mục đích sắp xếp

Theo mặc định, nó cho kết quả theo thứ tự tăng dần. Bạn có thể xem danh sách các khóa được trả về tại đây dựa trên giá trị của từng khóa tương ứng được sắp xếp theo thứ tự tăng dần

Thứ tự tăng dần

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
7

đầu ra

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
8

nếu bạn muốn danh sách các khóa theo thứ tự giảm dần ở trên thì hãy thêm một đối số khác có tên là đảo ngược là True và điều này sẽ cung cấp các khóa dựa trên giá trị của chúng được sắp xếp theo thứ tự giảm dần

Thứ tự giảm dần

d = dict[ zip[['name','age','city','state','rank'],['Charlie',42,'NYC','NY',1.0]]]
9

đầu ra

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
0

liệt kê từ điển

Bạn cũng có thể liệt kê thông qua từ điển và có thể lấy chỉ mục của từng khóa

Trong kết quả cuối cùng, bạn có thể thấy chỉ mục cho từng khóa

Chỉ cần nhớ đ. phím[], d. values[] trả về một đối tượng dict_keys hoạt động giống một tập hợp hơn là một danh sách

Do đó, ra lệnh. các giá trị [] cần được gói trong một danh sách. Bạn có thể thấy trong đoạn mã dưới đây, chúng tôi đã sử dụng danh sách [d. giá trị[]][chỉ mục]

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
1

đầu ra

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
2

Lọc từ điển

Bạn có thể lọc từ điển bằng cách sử dụng khả năng hiểu từ điển sẽ tạo từ điển mới dựa trên tiêu chí lọc

Trong ví dụ này, chúng tôi đang lọc ra tất cả các cặp khóa-giá trị có giá trị < 500. Từ điển cuối cùng có tất cả các khóa có giá trị lớn hơn 500

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
3

đầu ra

{'một'. 1000, 'b'. 3000, 'd'. 542, 'e'. 790, 'f'. 1042}

Cập nhật giá trị từ điển

Phương thức cập nhật sẽ ghi đè lên các khóa hiện có và Cập nhật từ điển bằng các cặp khóa/giá trị

Nó chấp nhận một đối tượng từ điển hoặc một cặp khóa/giá trị có thể lặp lại

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
4

đầu ra

{'một'. 1000, 'b'. 3049, 'c'. 100, 'd'. 542, 'e'. 790, 'f'. 1042, ‘g’. 790}

Xóa khóa từ điển

bạn có thể sử dụng del để xóa một khóa và giá trị của khóa đó khỏi từ điển nếu bạn chắc chắn rằng khóa đó tồn tại trong từ điển, nếu không, khóa đó sẽ tăng một 

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
9 nếu khóa không có trong bản đồ

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
5

đầu ra

{'một'. 1000, 'b'. 3000, 'c'. 100, 'd'. 542, 'e'. 790}

mệnh lệnh. nhạc pop[]

Nếu bạn không chắc chắn về khóa tồn tại trong từ điển thì hãy sử dụng dict. nhạc pop[]

Điều này sẽ trả về d[‘f’] nếu khóa tồn tại trong từ điển và Không có gì khác

Nếu tham số thứ hai không được chỉ định [i. e. đ. pop['f']] và phím không tồn tại, lỗi KeyError xuất hiện

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
6

Hợp nhất hai hoặc nhiều từ điển

Bạn có thể sử dụng toán tử giải nén từ điển ** để hợp nhất hai hoặc nhiều từ điển thành một từ điển duy nhất và sau đó bạn có thể lặp lại từ điển mới được hợp nhất này

Đây là một ví dụ

d = dict[[["name","charlie"],["age",42],["city","NYC","state","NY"],["rank",1.0]]]
7

đầu ra

{'NYC'. 'NY', 'Boston'. 'Massachusetts', 'Los Angeles'. 'California', 'Charlotte'. 'Bắc Carolina'}

Phần kết luận

Chúng tôi đã đi đến phần cuối của bài viết toàn diện và chi tiết này về lặp qua từ điển. Vì vậy, đây là những gì chúng tôi đã học được cho đến nay thông qua hành trình của chúng tôi thông qua blog này

  1. Từ điển là gì và nó hoạt động như thế nào và các cách khác nhau để tạo từ điển trong python
  2. Các đối tượng xem từ điển, tại sao nó quan trọng và bản chất năng động của nó là phản ánh các thay đổi ngay lập tức
  3. Chức năng lấy từ điển để truy xuất các giá trị từ một từ điển đơn giản và lồng nhau và nó trả về Không có nếu không tìm thấy khóa
  4. Cách sắp xếp từ điển theo khóa và giá trị theo thứ tự tăng dần và giảm dần
  5. Liệt kê thông qua một từ điển và lấy vị trí chỉ mục của các khóa được sắp xếp ngay bây giờ sau python 3. 6
  6. Cuối cùng, các phương pháp khác nhau để cập nhật và xóa khóa từ điển là gì

Tôi đã cố gắng trình bày tất cả các cách có thể để duyệt qua một từ điển và giải thích các cách khác nhau để làm việc với từ điển một cách hiệu quả

Tuy nhiên, nếu có bất cứ điều gì bạn cảm thấy nên được đưa vào bài đăng này hoặc có thể được thực hiện theo cách tối ưu hơn thì vui lòng để lại nhận xét bên dưới

Làm cách nào để lấy khóa từ từ điển Python?

Các phím từ điển Python[] . The keys[] method extracts the keys of the dictionary and returns the list of keys as a view object.

Làm cách nào để lấy giá trị khóa trước đó từ từ điển trong Python?

Từ điển Python get[] .

Get[] trong Python là gì?

Phương thức get[] trả về giá trị của mục bằng khóa đã chỉ định .

Bạn có thể duyệt qua một từ điển bằng Python không?

Bạn có thể lặp qua từ điển bằng cách sử dụng vòng lặp for . Khi lặp qua một từ điển, giá trị trả về là các khóa của từ điển, nhưng cũng có các phương thức để trả về các giá trị.

Chủ Đề