Chúng ta có thể sử dụng toán tử Python [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]0 để kiểm tra xem một chuỗi có có trong danh sách hay không. Ngoài ra còn có một toán tử [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]1 để kiểm tra xem một chuỗi không có trong danh sách. Show
Output:
Đọc được đề xuất: Python F-Strings, hãy xem xét một ví dụ khác, nơi chúng tôi sẽ yêu cầu người dùng nhập chuỗi để kiểm tra danh sách.
Output:
Python Tìm chuỗi trong danh sách bằng cách sử dụng Count ()Chúng ta cũng có thể sử dụng hàm Count () để có được số lần xuất hiện của một chuỗi trong danh sách. Nếu đầu ra của nó là 0, thì điều đó có nghĩa là chuỗi không có trong danh sách.
Tìm tất cả các chỉ mục của một chuỗi trong danh sáchKhông có chức năng tích hợp để có được danh sách tất cả các chỉ mục của một chuỗi trong danh sách. Dưới đây là một chương trình đơn giản để có được danh sách tất cả các chỉ mục trong đó chuỗi có trong danh sách.
Đầu ra: [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]2 Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi. 3.1. Các loại dữ liệu trình tựSequence data types¶Chương trước, chúng tôi đã giới thiệu các loại tích hợp Python, [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]3, [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]4 và [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]5, và chúng tôi tình cờ thấy [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]6. Số nguyên và phao là các loại số, có nghĩa là chúng giữ số. Chúng ta có thể sử dụng các toán tử số mà chúng ta đã thấy chương cuối cùng với chúng để tạo thành các biểu thức số. Trình thông dịch Python sau đó có thể đánh giá các biểu thức này để tạo ra các giá trị số, làm cho Python trở thành một máy tính rất mạnh.numeric types, which means they hold numbers. We can use the numeric operators we saw last chapter with them to form numeric expressions. The Python interpreter can then evaluate these expressions to produce numeric values, making Python a very powerful calculator. Chuỗi, danh sách và bộ dữ liệu đều là các loại trình tự, vì vậy được gọi là vì chúng hoạt động như một chuỗi - một bộ sưu tập các đối tượng được đặt hàng.sequence types, so called because they behave like a sequence - an ordered collection of objects. Các loại squence khác nhau về mặt chất lượng với các loại số vì chúng là loại dữ liệu hỗn hợp - có nghĩa là chúng được tạo thành từ các mảnh nhỏ hơn. Trong trường hợp chuỗi, chúng được tạo thành từ các chuỗi nhỏ hơn, mỗi chuỗi chứa một ký tự. Ngoài ra còn có chuỗi trống, không chứa ký tự nào cả.compound data types - meaning they are made up of smaller pieces. In the case of strings, they’re made up of smaller strings, each containing one character. There is also the empty string, containing no characters at all. Trong trường hợp danh sách hoặc bộ dữ liệu, chúng được tạo thành từ các phần tử, là giá trị của bất kỳ kiểu dữ liệu Python nào, bao gồm các danh sách và bộ dữ liệu khác.elements, which are values of any Python datatype, including other lists and tuples. Danh sách được đặt trong ngoặc vuông ( [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]7 and [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]8) and tuples in parentheses ( [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]9 and >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)0). Một danh sách không chứa các phần tử được gọi là một danh sách trống và một tuple không có phần tử là một tuple trống. [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")] Ví dụ đầu tiên là danh sách năm số nguyên, và tiếp theo là danh sách ba chuỗi. Thứ ba là một tuple chứa bốn số nguyên, sau đó là một tuple chứa bốn chuỗi. Cuối cùng là một danh sách chứa ba bộ dữ liệu, mỗi bộ chứa một cặp chuỗi. Tùy thuộc vào những gì chúng tôi đang làm, chúng tôi có thể muốn coi một loại dữ liệu hỗn hợp là một điều duy nhất hoặc chúng tôi có thể muốn truy cập các phần của nó. Sự mơ hồ này là hữu ích. Ghi chú Có thể bỏ dấu ngoặc đơn khi chỉ định một tuple và chỉ sử dụng danh sách các giá trị bị phân tách bằng dấu phẩy: >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8) Ngoài ra, bắt buộc phải bao gồm một dấu phẩy khi chỉ định một tuple chỉ có một yếu tố: >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'> Ngoại trừ trường hợp của tuple trống, nó thực sự là dấu phẩy, không phải dấu ngoặc đơn, nói với Python rằng đó là một tuple. 3.2. Làm việc với các phần của chuỗiWorking with the parts of a sequence¶Các loại trình tự chia sẻ một tập hợp các hoạt động chung. 3.2.1. Lập chỉ mụcIndexing¶Toán tử lập chỉ mục ( [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]7 [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]8) chọn một phần tử duy nhất từ một chuỗi. Biểu thức bên trong ngoặc được gọi là chỉ mục và phải là một giá trị số nguyên. Chỉ mục chỉ ra phần tử nào để chọn, do đó tên của nó.indexing operator ( [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]7 [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]8) selects a single element from a sequence. The expression inside brackets is called the index, and must be an integer value. The index indicates which element to select, hence its name. >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela') Biểu thức >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)3 chọn ký tự với INDEX >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)4 từ >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)5 và tạo ra một chuỗi mới chỉ chứa một ký tự này, bạn có thể ngạc nhiên khi thấy là >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)6. Bạn có thể dự kiến sẽ thấy >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)7, nhưng các nhà khoa học máy tính thường bắt đầu đếm từ số không, không phải một. Hãy nghĩ về chỉ số là các số trên một thước đo đo lường số lượng yếu tố bạn đã chuyển sang chuỗi từ đầu. Cả người cai trị và chỉ số bắt đầu tại >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)8. 3.2.2. Chiều dài¶Length¶Chương trước bạn đã thấy hàm >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)9 được sử dụng để lấy số lượng ký tự trong một chuỗi: Với danh sách và bộ dữ liệu, >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)9 trả về số lượng phần tử trong chuỗi: 03.2.3. Truy cập các yếu tố ở cuối chuỗiAccessing elements at the end of a sequence¶Người ta thường thấy trong chương trình máy tính cần truy cập các yếu tố ở cuối chuỗi. Bây giờ bạn đã thấy chức năng >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)9, bạn có thể muốn thử một cái gì đó như thế này: 1Điều đó đã giành được công việc. Nó gây ra lỗi thời gian chạy >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>2. Lý do là >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>3 trả về số lượng các phần tử trong danh sách, 16, nhưng không có phần tử nào ở vị trí chỉ mục 16 trong >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>4. Vì chúng tôi bắt đầu đếm ở 0, mười sáu chỉ số được đánh số từ 0 đến 15. Để có được phần tử cuối cùng, chúng tôi phải trừ 1 từ độ dài: 2Đây là một mô hình phổ biến như vậy mà Python cung cấp một ký hiệu tay ngắn cho nó, lập chỉ mục âm, đếm ngược từ cuối chuỗi.negative indexing, which counts backward from the end of the sequence. Biểu thức >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>5 mang lại phần tử cuối cùng, >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>6 mang lại thứ hai đến cuối cùng, v.v. 33.2.4. Traversal và >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'> 7 Loop¶Traversal and the >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'> 7 loop¶Rất nhiều tính toán liên quan đến việc xử lý một chuỗi một yếu tố tại một thời điểm. Mẫu phổ biến nhất là bắt đầu ở đầu, lần lượt chọn từng phần tử, làm điều gì đó với nó và tiếp tục cho đến khi kết thúc. Mô hình xử lý này được gọi là một đường truyền.traversal. Vòng lặp Python từ ____ ____87 làm cho Traversal dễ dàng thể hiện: 4Ghi chú Chúng tôi sẽ thảo luận về việc lặp lại chi tiết hơn trong chương tiếp theo. Bây giờ, chỉ cần lưu ý rằng dấu hai chấm (:) ở cuối dòng đầu tiên và thụt vào dòng thứ hai đều được yêu cầu để câu lệnh này được chính xác về mặt cú pháp. 3.3. ________ 89¶>>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'> 9¶Khi vòng lặp >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>7 tiêu chuẩn đi qua một chuỗi, nó chỉ định từng giá trị theo trình tự cho biến vòng lặp theo thứ tự nó xảy ra trong chuỗi. Đôi khi nó hữu ích để có cả giá trị và chỉ số của từng phần tử. Hàm >>> singleton = (2,) >>> type(singleton) <class 'tuple'> >>> not_tuple = (2) >>> type(not_tuple) <class 'int'> >>> empty_tuple = () >>> type(empty_tuple) <class 'tuple'>9 cung cấp cho chúng ta điều này: 53.3.1. Lát cắtSlices¶Một phần sau của một chuỗi được gọi là một lát cắt và hoạt động trích xuất một phần sau được gọi là cắt. Giống như với việc lập chỉ mục, chúng tôi sử dụng dấu ngoặc vuông ( [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]7 [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]8) làm toán tử lát cắt, nhưng thay vì một giá trị số nguyên bên trong, chúng tôi có hai, được phân tách bởi một đại tràng ( >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')4):slice and the operation that extracts a subsequence is called slicing. Like with indexing, we use square brackets ( [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]7 [10, 20, 30, 40, 50] ["spam", "bungee", "swallow"] (2, 4, 6, 8) ("two", "four", "six", "eight") [("cheese", "queso"), ("red", "rojo"), ("school", "escuela")]8) as the slice operator, but instead of one integer value inside we have two, seperated by a colon ( >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')4): 6Nhà điều hành >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')5 trả về một phần của chuỗi từ phần tử N hèth cho phần tử M hèth, bao gồm cả phần đầu tiên nhưng không bao gồm phần cuối cùng. Hành vi này là phản trực giác; Sẽ có ý nghĩa hơn nếu bạn tưởng tượng các chỉ số chỉ giữa các ký tự, như trong sơ đồ sau: Nếu bạn bỏ qua chỉ mục đầu tiên (trước dấu hai chấm), lát cắt bắt đầu ở đầu chuỗi. Nếu bạn bỏ qua chỉ mục thứ hai, lát cắt đi đến cuối chuỗi. Do đó: 7Bạn nghĩ >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')6 có nghĩa là gì? Còn >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')7 thì sao? Các chỉ số tiêu cực cũng được cho phép, vì vậy 8Mẹo Phát triển sự hiểu biết vững chắc về cách cắt lát hoạt động là quan trọng. Tiếp tục tạo các thử nghiệm trên mạng của riêng bạn với các chuỗi và lát cắt cho đến khi bạn có thể liên tục dự đoán kết quả của một hoạt động cắt trước khi bạn chạy nó. Khi bạn cắt một chuỗi, chuỗi kết quả luôn có cùng loại với trình tự mà nó được bắt nguồn. Điều này nói chung không đúng với việc lập chỉ mục, ngoại trừ trong trường hợp chuỗi. 9Mặc dù các yếu tố của một danh sách (hoặc tuple) có thể thuộc bất kỳ loại nào, bất kể bạn cắt nó như thế nào, một lát của danh sách là một danh sách. 3.3.2. Nhà điều hành >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela') 8The >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela') 8 operator¶Toán tử >>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')8 trả về xem một phần tử nhất định có chứa trong danh sách hoặc tuple: 0>>> fruit = "banana" >>> fruit[1] 'a' >>> fruits = ['apples', 'cherries', 'pears'] >>> fruits[0] 'apples' >>> prices = (3.99, 6.00, 10.00, 5.25) >>> prices[3] 5.25 >>> pairs = [('cheese', 'queso'), ('red', 'rojo'), ('school', 'escuela')] >>> pairs[2] ('school', 'escuela')8 hoạt động hơi khác với chuỗi. Nó đánh giá đến 01 nếu một chuỗi là một chuỗi con của một chuỗi khác: 1Lưu ý rằng một chuỗi là một chuỗi con của chính nó và chuỗi trống là một chuỗi con của bất kỳ chuỗi nào khác. (Cũng lưu ý rằng các lập trình viên máy tính thích nghĩ về các trường hợp cạnh này khá cẩn thận!) 2
3.4. Đối tượng và Phương phápObjects and methods¶Chuỗi, danh sách và bộ dữ liệu là đối tượng, điều đó có nghĩa là chúng không chỉ giữ các giá trị, mà còn có các hành vi tích hợp được gọi là phương thức, hoạt động trên các giá trị trong đối tượng. Hãy cùng xem xét một số phương thức chuỗi trong hành động để xem cách thức hoạt động của nó. 3Bây giờ, hãy để học cách mô tả những gì chúng ta vừa thấy. Mỗi chuỗi trong các ví dụ trên được theo sau bởi một toán tử chấm, tên phương thức và danh sách tham số, có thể trống.dot operator, a method name, and a parameter list, which may be empty. Trong ví dụ đầu tiên, chuỗi 02 được theo sau bởi toán tử DOT và sau đó là phương thức 03, có danh sách tham số trống. Chúng tôi nói rằng phương thức ____ ____103 được gọi trên chuỗi, 02. Gọi phương thức gây ra một hành động diễn ra bằng cách sử dụng giá trị mà phương thức được gọi. Hành động tạo ra kết quả, trong trường hợp này là giá trị chuỗi 06. Chúng tôi nói rằng phương thức 03 trả về chuỗi 06 khi nó được gọi trên (hoặc gọi) chuỗi 02.invoked on the string, 02. Invoking the method causes an action to take place using the value on which the method is invoked. The action produces a result, in this case the string value 06. We say that the 03 method returns the string 06 when it is invoked on (or called on) the string 02.Trong ví dụ thứ tư, phương thức 10 (một lần nữa với danh sách tham số trống) được gọi trên chuỗi 11. Vì mỗi ký tự trong chuỗi đại diện cho một chữ số, phương thức 10 trả về giá trị boolean 01. Gọi 10 trên 15 sản xuất 16. 17 loại bỏ khoảng trắng dẫn đầu và dấu vết.3.5. Hàm A is present in the list X is not present in the list 18 và tài liệuThe A is present in the list X is not present in the list 18 function and docstrings¶Phần trước đã giới thiệu một số phương thức của các đối tượng chuỗi. Để tìm tất cả các phương pháp mà các chuỗi có, chúng ta có thể sử dụng chức năng 19 tích hợp của Python:: 4Chúng tôi sẽ hoãn việc nói về những người bắt đầu bằng cách nhấn mạnh gấp đôi ( 20) cho đến sau này. Bạn có thể tìm hiểu thêm về từng phương pháp này bằng cách in ra các tài liệu của họ. Để tìm hiểu phương pháp 21 làm gì, ví dụ, chúng tôi làm điều này: 5Sử dụng thông tin này, chúng tôi có thể thử sử dụng phương thức thay thế để biến đổi mà chúng tôi biết nó hoạt động như thế nào. 6Ví dụ đầu tiên thay thế tất cả các tình trạng của 22 bằng 23. Thứ hai thay thế ký tự đơn 24 bằng hai ký tự 25. Ví dụ thứ ba thay thế hai lần xuất hiện đầu tiên của 26 bằng chuỗi trống.3.6. A is present in the list X is not present in the list 27 và A is present in the list X is not present in the list 28 PHƯƠNG PHÁPA is present in the list X is not present in the list 27 and A is present in the list X is not present in the list 28 methods¶Có hai phương pháp phổ biến cho cả ba loại chuỗi: 27 và 28. Hãy cùng nhìn vào các tài liệu của họ để xem những gì họ làm. 7Chúng tôi sẽ khám phá các chức năng này trong các bài tập. 3.7. Danh sách là có thể thay đổiLists are mutable¶Không giống như các chuỗi và bộ dữ liệu, là các đối tượng bất biến, danh sách có thể thay đổi, điều đó có nghĩa là chúng ta có thể thay đổi các yếu tố của chúng. Sử dụng toán tử khung ở phía bên trái của bài tập, chúng tôi có thể cập nhật một trong các yếu tố:mutable, which means we can change their elements. Using the bracket operator on the left side of an assignment, we can update one of the elements: 8Toán tử khung được áp dụng cho một danh sách có thể xuất hiện ở bất cứ đâu trong một biểu thức. Khi nó xuất hiện ở phía bên trái của một bài tập, nó thay đổi một trong các yếu tố trong danh sách, do đó, phần tử đầu tiên của >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)5 đã được thay đổi từ 32 thành 33 và phần cuối cùng từ 34 thành 35. Một nhiệm vụ cho một yếu tố của một danh sách được gọi là gán mục. Bài tập vật phẩm không hoạt động cho các chuỗi:item assignment. Item assignment does not work for
strings: 9Nhưng nó làm cho danh sách: 0Với toán tử lát cắt, chúng tôi có thể cập nhật một số yếu tố cùng một lúc: 1Chúng tôi cũng có thể xóa các phần tử khỏi danh sách bằng cách gán danh sách trống cho họ: 2Và chúng ta có thể thêm các phần tử vào danh sách bằng cách ép chúng vào một lát trống tại vị trí mong muốn: 33.8. Danh sách xóaList deletion¶Sử dụng các lát để xóa các yếu tố danh sách có thể khó xử, và do đó dễ bị lỗi. Python cung cấp một giải pháp thay thế dễ đọc hơn. 36 Xóa một phần tử khỏi danh sách: 4Như bạn có thể mong đợi, 36 xử lý các chỉ số âm và gây ra lỗi thời gian chạy nếu chỉ mục nằm ngoài phạm vi.Bạn có thể sử dụng một lát làm chỉ mục cho 36: 5Như thường lệ, các lát cắt chọn tất cả các yếu tố lên đến, nhưng không bao gồm chỉ số thứ hai. 3.9. Phương pháp liệt kêList methods¶Ngoài 27 và 28, danh sách có một số phương pháp hữu ích. Vì các danh sách có thể thay đổi, các phương thức này sửa đổi danh sách mà chúng được gọi, thay vì trả lại một danh sách mới. 6Phương pháp 41 đặc biệt hữu ích, vì nó giúp dễ dàng sử dụng Python để sắp xếp dữ liệu mà bạn đã đưa vào danh sách.3.10. Tên và các giá trị có thể thay đổiNames and mutable values¶Nếu chúng tôi thực hiện các câu lệnh gán này, 7Chúng tôi biết rằng các tên 42 và 43 sẽ đề cập đến một danh sách với các số >>> thing = 2, 4, 6, 8 >>> type(thing) <class 'tuple'> >>> thing (2, 4, 6, 8)4, 45 và 46. Nhưng chúng tôi không biết liệu họ có chỉ vào cùng một danh sách hay không.Có hai trạng thái có thể: hoặc Trong một trường hợp, 42 và 43 đề cập đến hai điều khác nhau có cùng giá trị. Trong trường hợp thứ hai, họ đề cập đến cùng một đối tượng.Chúng ta có thể kiểm tra xem hai tên có cùng giá trị bằng cách sử dụng 49:Chúng ta có thể kiểm tra xem hai tên có đề cập đến cùng một đối tượng bằng toán tử IS hay không: Điều này cho chúng ta biết rằng cả 42 và 43 không đề cập đến cùng một đối tượng và đó là sơ đồ đầu tiên trong hai sơ đồ trạng thái mô tả mối quan hệ.3.11. Răng cưa¶Aliasing¶Vì các biến đề cập đến các đối tượng, nếu chúng ta gán một biến cho một biến khác, cả hai biến tham chiếu đến cùng một đối tượng: 8Trong trường hợp này, đây là thứ hai trong hai sơ đồ trạng thái mô tả mối quan hệ giữa các biến. Bởi vì cùng một danh sách có hai tên khác nhau, 42 và 43, chúng tôi nói rằng nó là bí danh. Vì danh sách là có thể thay đổi, các thay đổi được thực hiện với một bí danh ảnh hưởng đến cái kia:aliased. Since lists are mutable, changes made with one alias affect the other: 9Mặc dù hành vi này có thể hữu ích, đôi khi nó bất ngờ hoặc không mong muốn. Nói chung, sẽ an toàn hơn khi tránh răng cưa khi bạn đang làm việc với các đối tượng có thể thay đổi. Tất nhiên, đối với các đối tượng bất biến, không có vấn đề gì, vì chúng có thể thay đổi sau khi chúng được tạo ra. 3.12. Danh sách nhân bảnCloning lists¶Nếu chúng tôi muốn sửa đổi một danh sách và cũng giữ một bản sao của bản gốc, chúng tôi cần có thể tạo một bản sao của danh sách, không chỉ là tài liệu tham khảo. Quá trình này đôi khi được gọi là nhân bản, để tránh sự mơ hồ của bản sao từ.cloning, to avoid the ambiguity of the word copy. Cách dễ nhất để sao chép danh sách là sử dụng toán tử lát cắt: 0Lấy bất kỳ lát cắt 42 tạo ra một danh sách mới. Trong trường hợp này, lát cắt xảy ra bao gồm toàn bộ danh sách.Bây giờ chúng tôi có thể tự do thay đổi 43 mà không phải lo lắng về 42: 13.13. Danh sách lồng nhauNested lists¶Danh sách lồng nhau là một danh sách xuất hiện dưới dạng một yếu tố trong một danh sách khác. Trong danh sách này, phần tử có chỉ mục 3 là một danh sách lồng nhau: 2Nếu chúng ta in 57, chúng ta sẽ nhận được 58. Để trích xuất một phần tử từ danh sách lồng nhau, chúng ta có thể tiến hành hai bước: 3Hoặc chúng ta có thể kết hợp chúng: Các toán tử khung đánh giá từ trái sang phải, do đó, biểu thức này có phần tử ba eth của 59 và trích xuất phần tử một eth từ nó.3.14. Chuỗi và danh sáchStrings and lists¶Python có một số công cụ kết hợp danh sách các chuỗi thành các chuỗi và các chuỗi riêng biệt thành danh sách các chuỗi. Lệnh 60 lấy loại trình tự làm đối số và tạo một danh sách trong số các yếu tố của nó. Khi được áp dụng cho một chuỗi, bạn nhận được một danh sách các ký tự. 4Phương thức 61 được gọi trên một chuỗi và tách chuỗi thành một danh sách các chuỗi, phá vỡ nó bất cứ khi nào một chuỗi con được gọi là dấu phân cách xảy ra. Phân đoạn mặc định là khoảng trắng, bao gồm không gian, tab và newlines. 5Ở đây chúng tôi có 62 là dấu phân cách. 6Lưu ý rằng dấu phân cách không xuất hiện trong danh sách. Phương pháp 63 thực hiện xấp xỉ oposite của phương pháp 61. Nó lấy một danh sách các chuỗi làm đối số và trả về một chuỗi của tất cả các yếu tố danh sách được kết hợp với nhau. 7Giá trị chuỗi mà phương thức 63 được gọi hoạt động như một dấu phân cách được đặt giữa mỗi phần tử trong danh sách trong chuỗi được trả về. 8Dấu tách cũng có thể là chuỗi trống. 93.15. Tuple Ghépter¶Tuple assignment¶Thỉnh thoảng, rất hữu ích khi trao đổi các giá trị của hai biến. Với các câu lệnh gán thông thường, chúng tôi phải sử dụng một biến tạm thời. Ví dụ: để hoán đổi 42 và 43:Nếu chúng ta phải làm điều này thường xuyên, cách tiếp cận này trở nên cồng kềnh. Python cung cấp một hình thức chuyển nhượng tuple giải quyết vấn đề này một cách gọn gàng:tuple assignment that solves this problem neatly: Phía bên trái là một bộ biến của các biến; Phía bên phải là một tuple của các giá trị. Mỗi giá trị được gán cho biến tương ứng của nó. Tất cả các biểu thức ở phía bên phải được đánh giá trước bất kỳ bài tập nào. Tính năng này làm cho việc gán tuple khá linh hoạt. Đương nhiên, số lượng biến ở bên trái và số lượng giá trị bên phải phải giống nhau: 03.16. Giá trị BooleanBoolean values¶Bây giờ chúng ta sẽ xem xét một loại giá trị mới - giá trị Boolean - được đặt theo tên của nhà toán học người Anh, George Boole. Ông đã tạo ra toán học mà chúng ta gọi là Đại số Boolean, là cơ sở của tất cả các số học máy tính hiện đại. Ghi chú Đó là một khả năng của máy tính để thay đổi luồng thực thi của nó tùy thuộc vào việc giá trị boolean là đúng hay sai, tạo ra một máy tính mục đích chung không chỉ là một máy tính. Chỉ có hai giá trị Boolean, 01 và 16. 1Viết hoa là quan trọng, vì 70 và 71 không phải là giá trị boolean trong Python .: 23.17. Boolean Biểu cảmBoolean expressions¶Một biểu thức boolean là một biểu thức đánh giá giá trị boolean.boolean expression is an expression that evaluates to a boolean value. Nhà điều hành 49 so sánh hai giá trị và tạo ra giá trị boolean: 3Trong câu lệnh đầu tiên, hai toán hạng là bằng nhau, do đó biểu thức đánh giá thành 01; Trong tuyên bố thứ hai, 5 không bằng 6, vì vậy chúng tôi nhận được 16.Toán tử 49 là một trong sáu nhà khai thác so sánh phổ biến; Những người khác là:comparison operators; the others are: 4Mặc dù các hoạt động này có thể quen thuộc với bạn, các biểu tượng Python khác với các biểu tượng toán học. Một lỗi phổ biến là sử dụng một dấu hiệu bằng nhau ( 76) thay vì dấu hiệu gấp đôi ( 49). Hãy nhớ rằng 76 là toán tử gán và 49 là một toán tử so sánh. Ngoài ra, không có thứ gọi là 80 hoặc 81.3.18. Người vận hành logicLogical operators¶Có ba toán tử logic: 82, 83 và 84. Các ngữ nghĩa (có nghĩa) của các toán tử này tương tự như ý nghĩa của chúng trong tiếng Anh. Ví dụ, 85 chỉ đúng nếu 86 lớn hơn 0 và đồng thời, x nhỏ hơn 10.logical operators: 82, 83, and 84. The
semantics (meaning) of these operators is similar to their meaning in English. For example, 85 is true only if 86 is greater than 0 and at the same time, x is less than 10. 87 là đúng nếu một trong hai điều kiện là đúng, nghĩa là, nếu số này chia hết cho 2 hoặc chia hết cho 3.Cuối cùng, toán tử 84 phủ nhận biểu thức boolean, do đó 89 là đúng nếu 90 là sai, nghĩa là, nếu 86 nhỏ hơn hoặc bằng 92.
53.19. Đánh giá ngắn mạchShort-circuit evaluation¶Các biểu thức boolean trong Python sử dụng đánh giá ngắn mạch, có nghĩa là chỉ đối số đầu tiên của biểu thức 82 hoặc 83 được đánh giá khi giá trị của nó là hợp lý để xác định giá trị của toàn bộ biểu thức.short-circuit evaluation, which means only the first argument of an 82 or 83 expression is evaluated when its value is suffient to determine the value of the entire
expression.Điều này có thể khá hữu ích trong việc ngăn ngừa lỗi thời gian chạy. Hãy tưởng tượng bạn muốn kiểm tra xem số thứ năm trong một số nguyên có tên 95 có chẵn không.Biểu thức sau đây sẽ hoạt động: 6Tất nhiên trừ khi không có 5 yếu tố trong 95, trong trường hợp đó bạn sẽ nhận được: 7Đánh giá ngắn mạch làm cho nó có thể tránh được vấn đề này. 8Vì phía bên trái của biểu thức 82 này là sai, Python không cần phải đánh giá phía bên phải để xác định rằng toàn bộ biểu thức là sai. Vì nó sử dụng đánh giá ngắn mạch, nó không và tránh lỗi thời gian chạy.3.20. "Sự thật"“Truthiness”¶Tất cả các giá trị Python đều có một sự thật của người Viking, hay giả mạo, điều đó có nghĩa là chúng có thể được sử dụng ở những nơi yêu cầu Boolean. Đối với các loại số và trình tự mà chúng ta đã thấy cho đến nay, sự thật được định nghĩa như sau: Các loại sốCác giá trị bằng 0 là sai, tất cả các giá trị khác là đúng. Các loại trình tựTrình tự trống là sai, các chuỗi không trống là đúng. Kết hợp khái niệm về sự thật này với sự hiểu biết về đánh giá ngắn mạch cho phép có thể hiểu được Python đang làm gì trong các biểu thức sau: 93.21. Bảng chú giải¶Glossary¶bí danhNhiều biến có chứa tham chiếu đến cùng một đối tượng. giá trị booleanCó chính xác hai giá trị boolean: 01 và 16. Các giá trị Boolean kết quả khi biểu thức boolean được đánh giá bởi python interepreter. Họ có loại 00.Biểu hiện booleanMột biểu thức là đúng hoặc sai. dòng vô tínhĐể tạo một đối tượng mới có cùng giá trị như một đối tượng hiện có. Sao chép một tham chiếu đến một đối tượng tạo ra một bí danh nhưng không sao chép đối tượng. Nhà điều hành so sánhMột trong những toán tử so sánh hai giá trị: 49, 02, 03, 04, 05 và 06.Kiểu dữ liệu hỗn hợpMột loại dữ liệu trong đó các giá trị được tạo thành từ các thành phần hoặc phần tử, đó là các giá trị của chúng. yếu tốMột trong những phần tạo nên loại trình tự (chuỗi, danh sách hoặc tuple). Các yếu tố có một giá trị và một chỉ mục. Giá trị được truy cập bằng cách sử dụng toán tử chỉ mục ( 07) trên chuỗi.Kiểu dữ liệu bất biếnMột kiểu dữ liệu không thể sửa đổi. Bài tập cho các phần tử hoặc lát cắt các loại bất biến gây ra lỗi thời gian chạy. mục lụcMột biến hoặc giá trị được sử dụng để chọn một thành viên của bộ sưu tập được đặt hàng, chẳng hạn như ký tự từ chuỗi hoặc phần tử từ danh sách hoặc tuple. toán tử logicMột trong những toán tử kết hợp các biểu thức boolean: 82, 83 và 84.Loại dữ liệu có thể thay đổiMột kiểu dữ liệu có thể được sửa đổi. Tất cả các loại có thể thay đổi là các loại hợp chất. Danh sách và từ điển là các loại dữ liệu có thể thay đổi; Chuỗi và bộ dữ liệu không. danh sách lồng nhauMột danh sách là một yếu tố của một danh sách khác. lát cắtMột phần của chuỗi (chuỗi con) được chỉ định bởi một loạt các chỉ số. Tổng quát hơn, có thể tạo ra một phần trăm của bất kỳ loại trình tự nào trong Python bằng toán tử lát cắt ( 11).cỡ bước chânKhoảng thời gian giữa các yếu tố liên tiếp của một chuỗi tuyến tính. Đối số thứ ba (và đối số tùy chọn) cho hàm 12 được gọi là kích thước bước. Nếu không được chỉ định, nó mặc định là 1.đi quaĐể lặp lại thông qua các yếu tố của một bộ sưu tập, thực hiện một thao tác tương tự trên mỗi. TupleMột loại dữ liệu chứa một chuỗi các yếu tố thuộc bất kỳ loại nào, như một danh sách, nhưng là bất biến. Tuples có thể được sử dụng bất cứ nơi nào một loại bất biến là bắt buộc, chẳng hạn như một khóa trong từ điển (xem chương tiếp theo). nhiệm vụ chuyển nhượngMột bài tập cho tất cả các yếu tố trong một tuple bằng cách sử dụng một câu lệnh gán duy nhất. Việc gán tuple xảy ra song song chứ không phải theo trình tự, làm cho nó hữu ích cho việc hoán đổi các giá trị. Bạn có thể đặt các chuỗi vào một danh sách trong Python không?Phương thức Split () là phương thức được đề xuất và phổ biến nhất được sử dụng để chuyển đổi chuỗi thành liệt kê trong Python..
Bạn có thể lưu trữ chuỗi trong một danh sách?Để làm điều này, chúng tôi sử dụng phương thức chia () trong chuỗi.Phương pháp phân chia được sử dụng để phân chia các chuỗi và lưu trữ chúng trong danh sách.Phương thức tích hợp trả về một danh sách các từ trong chuỗi, sử dụng Delimiter, làm chuỗi phân cách.The split method is used to split the strings and store them in the list. The built-in method returns a list of the words in the string, using the “delimiter” as the delimiter string.
Chuỗi có thể được chuyển đổi thành danh sách không?Bạn cũng có thể chuyển đổi một chuỗi thành một danh sách bằng cách sử dụng một dấu phân cách với phương thức chia ().Bộ phân cách có thể là bất kỳ ký tự bạn chỉ định.Chuỗi sẽ tách biệt dựa trên dấu phân cách bạn cung cấp.Ví dụ: bạn có thể sử dụng dấu phẩy ,, làm dấu phân cách.. The separator can be any character you specify. The string will separate based on the separator you provide. For example, you can use a comma, , , as the separator. |