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 Show chủ đề chươngCá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 4khởi tạo một từ điển trống 5khởi tạo một từ điển 6khởi tạo một từ điển với các khóa chuỗi 7thêm/cập nhật các cặp khóa-giá trị từ 8 trong 9 0thêm/cập nhật các cặp khóa-giá trị trong 9 2thêm cặp khóa-giá trị mới vào 9 4lấy giá trị tương ứng với khóa 5 6lặp lại các khóa theo thứ tự không xác định 7lặp lại các khóa trong DâyMột số chức năng hữu ích nhất trong đối tượng chuỗi 71 được liệt kê bên dướiTách chuỗi thành các chuỗi con cách nhau bởi 72 9Nối các phần tử trong danh sách các chuỗi. 0Trích xuất một chuỗi con. Thay chuỗi con 73 bằng chuỗi mới 74. Kiểm tra xem một chuỗi con có nằm trong một chuỗi khác không. 6Tìm chỉ mục nơi một số văn bản bắt đầu. 7Mở rộng một chuỗi. 7Kiểm tra xem một chuỗi chỉ chứa khoảng trắng. 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. 9Đang tải xuống các tệp InternetCó thể tải xuống các tệp Internet nếu chúng tôi biết URL của chúng 0Thông tin đã tải xuống được đưa vào tệp cục bộ 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 00HTML thường lộn xộn để diễn giải bằng các thao tác chuỗiThuật ngữCác chủ đề khoa học máy tính quan trọng trong tài liệu này là
Ví dụ. Cơ sở dữ liệu tập tinVấ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 ( 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 77 đến 78). Dưới đây là một ví dụ về một tệp có ba mục nhập sinh viên 01Vấn đề của chúng tôi bao gồm đọc tệp này vào từ điển 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 79 có thể giống như 02Có từ điển 79, nhiệm vụ tiếp theo là in ra điểm trung bình của từng học sinhDung dịchChú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 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ăngChú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 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útBâ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 03Nếu chúng tôi tìm thấy 74 dưới dạng chuỗi con trong 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 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 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ùngMỗ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 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 77 chứa các từ trong tên của khóa học. Mã đi như sau. 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ảnBâ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 07Để chuyển đổi từ số sang điểm, chúng tôi xây dựng từ điển nghịch đảo. 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. 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. 0Một tính năng của mã 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ị. |