Python lấy độ dài của danh sách trong từ điển

Hãy đi sâu vào hai vấn đề này và tìm giải pháp Pythonic nhất cho cả hai. Phương pháp 1 và 2 giải quyết vấn đề đầu tiên. Phương pháp 3 và 4 giải quyết vấn đề thứ hai

Phương pháp 1. Độ dài của giá trị từ điển đơn

Đưa ra từ điển sau ánh xạ độ tuổi [_______29] với danh sách những người [

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
0] với độ tuổi cụ thể đó

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}

Bạn muốn lấy độ dài của giá trị được liên kết với khóa

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
1. Giá trị được liên kết với khóa
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
1 là danh sách
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
3 có độ dài
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
4 [ba phần tử]

Để có được độ dài của một giá trị từ điển được liên kết với một khóa nhất định, hãy truy cập giá trị đó bằng cách sử dụng biểu thức

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
5 và chuyển nó vào hàm độ dài như vậy.
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
6. Giá trị trả về là độ dài của lần lặp được liên kết với khóa cụ thể này

Đây là cách bạn thực hiện điều này cho ví dụ đã cho của chúng tôi

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2

Cách tiếp cận này không phải là hoàn hảo mặc dù

Phương pháp 2. Độ dài của giá trị từ điển có thể không tồn tại và không thể lặp lại

Điều gì sẽ xảy ra nếu bạn muốn lấy độ dài của giá trị nhưng bạn không chắc liệu giá trị đó có phải là giá trị có thể lặp lại ngay từ đầu hay không?

Hãy xem ví dụ này

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]

Điều này dẫn đến

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
7 sau đây

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}
1

Đây là chức năng mã sửa lỗi này

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}
2

Bạn bắt đầu bằng cách kiểm tra xem khóa có trong từ điển hay không bằng cách sử dụng toán tử thành viên

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
8

Nếu key nằm trong từ điển thì bạn cần đảm bảo giá trị đi kèm là chuỗi hoặc list để có thể kiểm tra hàm

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
9. Bạn sử dụng chức năng tích hợp sẵn của
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]
0 để thực hiện việc này

Python isinstance[] - Hướng dẫn hữu ích với các ví dụ


Xem video này trên YouTube

💡 Lưu ý. Bạn có thể kiểm tra nhiều loại dữ liệu hơn nữa bằng cách mở rộng đối số bộ thứ hai của hàm

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]
1. Ví dụ: để cũng cho phép các tập hợp, hãy sử dụng bộ dữ liệu
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]
2 làm đối số thứ hai

Bây giờ, bạn có ba trường hợp sau trong hàm

  • Nếu khóa nằm trong từ điển và giá trị là một lần lặp, bạn trả về độ dài của lần lặp
  • Nếu khóa nằm trong từ điển và giá trị không thể lặp lại, bạn trả về độ dài cố định là 1
  • Nếu khóa không có trong từ điển, bạn trả về 0 vì độ dài của giá trị không tồn tại là 0

Được rồi, tiếp theo hãy tìm hiểu cách lấy tổng độ dài [tổng hợp] của tất cả các giá trị trong từ điển

Phương pháp 3. Tổng chiều dài của tất cả các giá trị từ điển

Tiếp theo, chúng tôi giả sử rằng mọi thứ đều đẹp và ấm cúng và tất cả các giá trị từ điển đều có thể lặp lại mà chúng tôi có thể chuyển vào hàm

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]
3. Trong trường hợp này, giải pháp rất đơn giản. hiểu từ điển

Hiểu từ điển Python - Hướng dẫn một lớp mạnh mẽ


Xem video này trên YouTube

Để có được độ dài tổng của tất cả các giá trị từ điển, bạn có thể sử dụng câu lệnh hiểu từ điển

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}
9

Điều này lặp lại trên tất cả các giá trị từ điển bằng phương pháp

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]
4 và tính toán độ dài của từng phần tử từ điển. Iterable kết quả được chuyển vào hàm
age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete'],
       23: None}


# Length of value associated with key 23:
res = len[age[23]]
print[res]
5 tích hợp

Giá trị trả về là độ dài tổng của tất cả các giá trị từ điển

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

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
2

Tuy nhiên, điều này là không đủ nếu ít nhất một giá trị từ điển không thể lặp lại

Phương pháp 4. Tổng độ dài của tất cả các giá trị từ điển với các giá trị không thể lặp lại

Để có được tổng độ dài [tổng hợp] của tất cả các giá trị từ điển nếu một hoặc nhiều giá trị có thể không lặp lại được, hãy sử dụng một lớp lót hiệu quả sau

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
3

Một lớp lót này tương tự như phương pháp trên

  • Việc hiểu từ điển đi qua tất cả các giá trị trong từ điển
  • Đối với mỗi giá trị
    age = {17: ['alice', 'bob'],
           21: ['carl', 'frank', 'pete'],
           23: None}
    
    
    # Length of value associated with key 23:
    res = len[age[23]]
    print[res]
    6, nó sử dụng biểu thức bậc ba với điều kiện
    age = {17: ['alice', 'bob'],
           21: ['carl', 'frank', 'pete'],
           23: None}
    
    
    # Length of value associated with key 23:
    res = len[age[23]]
    print[res]
    7 để kiểm tra xem giá trị đó có phải là một kiểu danh sách hoặc chuỗi có thể lặp lại hay không
    • Nếu có, bạn có thể trả về kết quả của
      age = {17: ['alice', 'bob'],
             21: ['carl', 'frank', 'pete'],
             23: None}
      
      
      # Length of value associated with key 23:
      res = len[age[23]]
      print[res]
      8
    • Nếu không, bạn trả về
      age = {17: ['alice', 'bob'],
             21: ['carl', 'frank', 'pete'],
             23: None}
      
      
      # Length of value associated with key 23:
      res = len[age[23]]
      print[res]
      9 vì đây là giá trị không thể lặp lại được tính là một giá trị duy nhất

Toán tử Ternary Python – Và một vụ hack một lớp đáng ngạc nhiên


Xem video này trên YouTube

Đây là ví dụ mã đầy đủ

age = {17: ['alice', 'bob'],
       21: ['carl', 'frank', 'pete']}


# Length of value associated with key 17:
res = len[age[17]]
print[res]
# 3

# Length of value associated with key 21:
res = len[age[21]]
print[res]
# 2
8

Theo tôi, đây là giải pháp Pythonic nhất cho vấn đề này. Nhưng tôi thiên vị - tôi yêu thích những câu nói đơn phương đến nỗi tôi đã viết một cuốn sách về nó…

Sách Python One-Liners. Làm chủ một dòng đầu tiên

Các lập trình viên Python sẽ cải thiện các kỹ năng khoa học máy tính của họ với những lời khuyên hữu ích này

Python One-Liners sẽ dạy bạn cách đọc và viết “one-liners”. tuyên bố ngắn gọn về chức năng hữu ích được gói gọn trong một dòng mã. Bạn sẽ học cách giải nén một cách có hệ thống và hiểu bất kỳ dòng mã Python nào, đồng thời viết Python được nén mạnh mẽ, hùng hồn như một chuyên gia

Năm chương của cuốn sách bao gồm [1] mẹo và thủ thuật, [2] biểu thức chính quy, [3] học máy, [4] chủ đề khoa học dữ liệu cốt lõi và [5] thuật toán hữu ích

Giải thích chi tiết về một lớp giới thiệu các khái niệm khoa học máy tính quan trọng và nâng cao kỹ năng mã hóa và phân tích của bạn. Bạn sẽ tìm hiểu về các tính năng nâng cao của Python như khả năng hiểu danh sách, cắt lớp, hàm lambda, biểu thức chính quy, hàm ánh xạ và rút gọn cũng như các bài tập cắt lát

Bạn cũng sẽ học cách

  • Tận dụng cấu trúc dữ liệu để giải quyết các vấn đề trong thế giới thực, chẳng hạn như sử dụng lập chỉ mục Boolean để tìm các thành phố có ô nhiễm trên mức trung bình
  • Sử dụng các khái niệm cơ bản về NumPy như mảng, hình dạng, trục, loại, phát sóng, lập chỉ mục nâng cao, cắt, sắp xếp, tìm kiếm, tổng hợp và thống kê
  • Tính toán số liệu thống kê cơ bản của mảng dữ liệu đa chiều và thuật toán K-Means cho học không giám sát
  • Tạo các biểu thức chính quy nâng cao hơn bằng cách sử dụng nhóm và nhóm được đặt tên, giao diện phủ định, ký tự thoát, khoảng trắng, bộ ký tự [và bộ ký tự phủ định] và toán tử tham lam/không tham lam
  • Hiểu một loạt các chủ đề khoa học máy tính, bao gồm đảo chữ cái, đối xứng, siêu bộ, hoán vị, giai thừa, số nguyên tố, số Fibonacci, xáo trộn, tìm kiếm và sắp xếp theo thuật toán

Đến cuối cuốn sách, bạn sẽ biết cách viết Python ở mức tinh tế nhất và tạo ra những tác phẩm “nghệ thuật Python” ngắn gọn, đẹp mắt chỉ trong một dòng

Nhận Python One-Liners của bạn trên Amazon

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Từ điển có Len không?

Để xác định một từ điển có bao nhiêu mục [cặp khóa-giá trị], hãy sử dụng phương thức len[] .

Bạn có thể sử dụng độ dài cho từ điển Python không?

Sử dụng hàm có sẵn len[], chúng ta có thể nhanh chóng xác định độ dài của từ điển Python . Hàm này trả về số độ dài được lưu trữ trong từ điển dưới dạng các cặp khóa-giá trị. Số phần tử có thể lặp lại trong từ điển luôn được hàm len[] trả về.

Chủ Đề