Python nếu giá trị từ điển chứa chuỗi

Chương này được trích từ cuốn sách A Primer on Scientific Programming with Python của H. P. Langtangen, tái bản lần thứ 5, Springer, 2016

chủ đề chương

Các đối tượng dạng mảng hoặc danh sách có văn bản hoặc các đối tượng Python [có giá trị cố định] khác dưới dạng chỉ mục được gọi là từ điển. Chúng rất hữu ích để lưu trữ các bộ sưu tập chung của các đối tượng trong một cấu trúc dữ liệu duy nhất. Bảng dưới đây hiển thị một số hoạt động từ điển quan trọng nhất

ConstructionMeaning
substring = s[2:n-4]
4khởi tạo một từ điển trống
substring = s[2:n-4]
5khởi tạo một từ điển
substring = s[2:n-4]
6khởi tạo một từ điển với các khóa chuỗi
substring = s[2:n-4]
7thêm/cập nhật các cặp khóa-giá trị từ
substring = s[2:n-4]
8 trong
substring = s[2:n-4]
9
s_new = s.replace[substr, replacement]
0thêm/cập nhật các cặp khóa-giá trị trong
substring = s[2:n-4]
9
s_new = s.replace[substr, replacement]
2thêm cặp khóa-giá trị mới vào
substring = s[2:n-4]
9
s_new = s.replace[substr, replacement]
4lấy giá trị tương ứng với khóa
s_new = s.replace[substr, replacement]
5
s_new = s.replace[substr, replacement]
6lặp lại các khóa theo thứ tự không xác định
s_new = s.replace[substr, replacement]
7lặp lại các khóa trong

Dây

Một số chức năng hữu ích nhất trong đối tượng chuỗi

substring = s[2:n-4]
71 được liệt kê bên dưới

Tách chuỗi thành các chuỗi con cách nhau bởi

substring = s[2:n-4]
72

substring = s[2:n-4]
9Nối các phần tử trong danh sách các chuỗi.
substring = s[2:n-4]
0Trích xuất một chuỗi con.
substring = s[2:n-4]
Thay chuỗi con
substring = s[2:n-4]
73 bằng chuỗi mới
substring = s[2:n-4]
74.
s_new = s.replace[substr, replacement]
Kiểm tra xem một chuỗi con có nằm trong một chuỗi khác không.
substring = s[2:n-4]
6Tìm chỉ mục nơi một số văn bản bắt đầu.
substring = s[2:n-4]
7Mở rộng một chuỗi.
substring = s[2:n-4]
7Kiểm tra xem một chuỗi chỉ chứa khoảng trắng.
substring = s[2:n-4]
8Lưu ý. bạn không thể thay đổi các ký tự trong một chuỗi giống như bạn có thể thay đổi các phần tử trong một danh sách [một chuỗi theo nghĩa này giống như một bộ dữ liệu]. Bạn phải tạo một chuỗi mới.
substring = s[2:n-4]
9

Đang tải xuống các tệp Internet

Có thể tải xuống các tệp Internet nếu chúng tôi biết URL của chúng

substring = s[2:n-4]
0Thông tin đã tải xuống được đưa vào tệp cục bộ
substring = s[2:n-4]
75 trong thư mục làm việc hiện tại. Ngoài ra, chúng ta có thể mở URL dưới dạng đối tượng tệp. Các tệp
substring = s[2:n-4]
00HTML thường lộn xộn để diễn giải bằng các thao tác chuỗi

Thuật ngữ

Các chủ đề khoa học máy tính quan trọng trong tài liệu này là

  • từ điển
  • chuỗi và thao tác chuỗi
  • tệp CSV
  • tệp HTML

Ví dụ. Cơ sở dữ liệu tập tin

Vấn đề

Chúng tôi có một tệp chứa thông tin về các khóa học mà sinh viên đã tham gia. Định dạng tệp bao gồm các khối có dữ liệu sinh viên, trong đó mỗi khối bắt đầu bằng tên của sinh viên [

substring = s[2:n-4]
76], tiếp theo là các khóa học mà sinh viên đã tham gia. Mỗi dòng khóa học bắt đầu bằng tên của khóa học, sau đó đến học kỳ khi kỳ thi được thực hiện, sau đó là quy mô của khóa học về điểm tín chỉ và cuối cùng là điểm số được liệt kê [chữ cái
substring = s[2:n-4]
77 đến
substring = s[2:n-4]
78]. Dưới đây là một ví dụ về một tệp có ba mục nhập sinh viên

substring = s[2:n-4]
01

Vấn đề của chúng tôi bao gồm đọc tệp này vào từ điển

substring = s[2:n-4]
79 với tên sinh viên là khóa và danh sách các khóa học là giá trị. Mỗi thành phần trong danh sách các khóa học là một từ điển chứa tên khóa học, học kỳ, điểm tín chỉ và điểm. Một giá trị trong từ điển
substring = s[2:n-4]
79 có thể giống như

substring = s[2:n-4]
02Có từ điển
substring = s[2:n-4]
79, nhiệm vụ tiếp theo là in ra điểm trung bình của từng học sinh

Dung dịch

Chúng tôi chia vấn đề thành hai nhiệm vụ chính. tải dữ liệu tệp vào từ điển

substring = s[2:n-4]
79 và tính điểm trung bình. Hai nhiệm vụ này đương nhiên được đặt trong hai chức năng

Chúng ta cần có một chiến lược để đọc tệp và diễn giải nội dung. Sẽ là tự nhiên khi đọc tệp theo từng dòng và đối với mỗi dòng, hãy kiểm tra xem đây là dòng chứa tên sinh viên mới, dòng thông tin khóa học hay dòng trống. Trong trường hợp sau, chúng tôi chuyển sang bước tiếp theo trong vòng lặp. Khi gặp tên sinh viên mới, chúng tôi khởi tạo một mục mới trong từ điển

substring = s[2:n-4]
79 thành một danh sách trống. Trong trường hợp một dòng về một khóa học, chúng tôi phải diễn giải nội dung trên dòng đó, chúng tôi sẽ hoãn lại một chút

Bây giờ chúng ta có thể phác thảo thuật toán được mô tả ở trên dưới dạng một số mã Python chưa hoàn thành, chỉ để có cái nhìn tổng quan

substring = s[2:n-4]
03

Nếu chúng tôi tìm thấy

substring = s[2:n-4]
74 dưới dạng chuỗi con trong
substring = s[2:n-4]
75, chúng tôi phải trích xuất tên. Điều này có thể được thực hiện bởi chuỗi con
substring = s[2:n-4]
76. Ngoài ra, chúng ta có thể tách dòng đối với dấu hai chấm và loại bỏ từ đầu tiên

substring = s[2:n-4]
04Chúng tôi đã chọn chiến lược trước đây là trích xuất tên dưới dạng chuỗi con trong chương trình cuối cùng

Mỗi dòng khóa học được chia thành các từ một cách tự nhiên để trích xuất thông tin

substring = s[2:n-4]
05Tên của khóa học bao gồm một số từ, nhưng chúng tôi không biết có bao nhiêu. Tuy nhiên, chúng ta biết rằng những từ cuối cùng bao gồm học kỳ, điểm tín chỉ và điểm số. Do đó, chúng tôi có thể đếm từ bên phải và trích xuất thông tin, và khi chúng tôi hoàn thành thông tin về học kỳ, phần còn lại của danh sách
substring = s[2:n-4]
77 chứa các từ trong tên của khóa học. Mã đi như sau.
substring = s[2:n-4]
06Mã này là một ví dụ điển hình về tính hữu dụng của thao tác tách và nối khi trích xuất thông tin từ văn bản

Bây giờ đến nhiệm vụ thứ hai là tính điểm trung bình. Vì các điểm là các chữ cái, chúng tôi không thể tính toán với chúng. Một cách tự nhiên để tiến hành là chuyển đổi các chữ cái thành số, tính số trung bình và sau đó chuyển đổi số đó trở lại thành chữ cái. Chuyển đổi giữa các chữ cái và số được thể hiện dễ dàng bằng từ điển

substring = s[2:n-4]
07Để chuyển đổi từ số sang điểm, chúng tôi xây dựng từ điển nghịch đảo.
substring = s[2:n-4]
08Trong tính toán điểm trung bình, chúng ta nên sử dụng tổng trọng số sao cho các khóa học lớn hơn được tính nhiều hơn các khóa học nhỏ hơn. Giá trị trung bình có trọng số của một tập hợp các số \[ r_i \] có trọng số \[ w_i \], \[ i=0,\ldots,n-1 \], được cho bởi $$ \begin{equation*} {\ . Trọng số \[ w_i \] được lấy đương nhiên là số điểm tín chỉ của môn học có điểm \[ r_i \]. Toàn bộ quá trình được thực hiện bởi chức năng sau.
substring = s[2:n-4]
09Mã hoàn chỉnh được tìm thấy trong tệp students. py. Chạy chương trình này cho kết quả sau đây về điểm trung bình.
substring = s[2:n-4]
0

Một tính năng của mã

substring = s[2:n-4]
79 là đầu ra của các tên được sắp xếp theo họ. Làm thế nào chúng ta có thể thực hiện điều đó? . Để truy cập các khóa theo thứ tự bảng chữ cái, chúng ta phải sử dụng

Làm cách nào để kiểm tra xem từ điển có chứa chuỗi Python không?

Để kiểm tra xem có bất kỳ giá trị nào trong từ điển chứa một chuỗi nhất định không. .
Sử dụng vòng lặp for để lặp lại các mục của từ điển
Sử dụng câu lệnh if để kiểm tra xem chuỗi có chứa trong mỗi giá trị không

Có == cho dict trong Python không?

Theo tài liệu python, bạn thực sự có thể sử dụng toán tử == trên từ điển .

Làm cách nào để khớp từ điển với chuỗi trong Python?

Các cách khác nhau để chuyển từ điển thành chuỗi trong Python .
Sử dụng hàm str[]. .
sử dụng json. .
Sử dụng một chuỗi rỗng và vòng lặp for. .
Sử dụng chuỗi rỗng, vòng lặp for và hàm items[]. .
Sử dụng vòng lặp for, items[] và str

Từ điển có thể có một chuỗi làm giá trị không?

Giá trị từ điển có thể là bất kỳ thứ gì [int, danh sách, hàm, chuỗi, v.v.]. Ví dụ: từ điển bên dưới,enderDict có int là khóa và chuỗi là giá trị.

Chủ Đề