Chỉ số Python
Cấu trúc dữ liệu cơ bản nhất trong Python là dãy. Mỗi phần tử của một chuỗi được gán một số - vị trí hoặc chỉ số của nó. Chỉ số đầu tiên bằng 0, chỉ số thứ hai là một, v.v. Show Python có sáu loại trình tự tích hợp sẵn, nhưng những loại phổ biến nhất là danh sách và bộ dữ liệu, mà chúng ta sẽ thấy trong hướng dẫn này Có một số điều bạn có thể làm với tất cả các loại trình tự. Các hoạt động này bao gồm lập chỉ mục, cắt, thêm, nhân và kiểm tra tư cách thành viên. Ngoài ra, Python có các hàm tích hợp để tìm độ dài của một chuỗi và tìm các phần tử lớn nhất và nhỏ nhất của nó Danh sách PythonDanh sách này là kiểu dữ liệu linh hoạt nhất có sẵn trong Python, có thể được viết dưới dạng danh sách các giá trị (mục) được phân tách bằng dấu phẩy giữa các dấu ngoặc vuông. Điều quan trọng về danh sách là các mục trong danh sách không nhất thiết phải cùng loại Tạo danh sách đơn giản như đặt các giá trị được phân tách bằng dấu phẩy khác nhau giữa các dấu ngoặc vuông. Ví dụ - list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"] Tương tự như chỉ mục chuỗi, chỉ mục danh sách bắt đầu từ 0 và danh sách có thể được cắt, nối, v.v. Truy cập các giá trị trong danh sáchĐể truy cập các giá trị trong danh sách, hãy sử dụng dấu ngoặc vuông để cắt cùng với chỉ mục hoặc các chỉ mục để lấy giá trị có sẵn tại chỉ mục đó. Ví dụ - #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5] Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau - list1[0]: physics list2[1:5]: [2, 3, 4, 5] Cập nhật danh sáchBạn có thể cập nhật một hoặc nhiều phần tử của danh sách bằng cách đưa lát cắt ở phía bên trái của toán tử gán và bạn có thể thêm vào các phần tử trong danh sách bằng phương thức append(). Ví dụ - #!/usr/bin/python list = ['physics', 'chemistry', 1997, 2000]; print "Value available at index 2 : " print list[2] list[2] = 2001; print "New value available at index 2 : " print list[2] Lưu ý - phương thức append() được thảo luận trong phần tiếp theo Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau - Value available at index 2 : 1997 New value available at index 2 : 2001 Xóa phần tử danh sáchĐể xóa một phần tử danh sách, bạn có thể sử dụng câu lệnh del nếu bạn biết chính xác (những) phần tử nào bạn đang xóa hoặc phương thức remove() nếu bạn không biết. Ví dụ - #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list1 Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau - ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000] Lưu ý - phương thức remove() được thảo luận trong phần tiếp theo Hoạt động danh sách cơ bảnCác danh sách phản hồi các toán tử + và * giống như các chuỗi; Trên thực tế, các danh sách đáp ứng tất cả các thao tác trình tự chung mà chúng ta đã sử dụng trên các chuỗi trong chương trước Python ExpressionResultsDescriptionlen([1, 2, 3])3Length[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]Concatenation['Xin chào. '] * 4['Xin chào. ', 'Xin chào. ', 'Xin chào. ', 'Xin chào. ']Repetition3 in [1, 2, 3]TrueMembershipfor x in [1, 2, 3]. in x,1 2 3Lặp lạiLập chỉ mục, cắt lát và ma trậnBởi vì danh sách là các chuỗi, lập chỉ mục và cắt hoạt động theo cách tương tự đối với danh sách cũng như đối với chuỗi Trong bài học này, bạn sẽ thấy cách truy cập các phần tử riêng lẻ và chuỗi các đối tượng trong danh sách của mình. Các phần tử danh sách có thể được truy cập bằng cách sử dụng một chỉ mục số trong ngoặc vuông >>>
Đây là kỹ thuật tương tự được sử dụng để truy cập các ký tự riêng lẻ trong một chuỗi. Lập chỉ mục danh sách cũng dựa trên số không >>>
Các phần tử danh sách cũng có thể được truy cập bằng cách sử dụng chỉ mục danh sách phủ định, được tính từ cuối danh sách >>>
Cắt lát là cú pháp lập chỉ mục trích xuất một phần từ danh sách. Nếu 9 là một danh sách, thì 0 trả về phần của 9
Đây là một ví dụ >>> #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]5 Bỏ qua chỉ mục đầu tiên và/hoặc cuối cùng
Đây là một ví dụ >>> list1[0]: physics list2[1:5]: [2, 3, 4, 5]0 Một bước tiến có thể được thêm vào ký hiệu lát cắt của bạn. Sử dụng một 8 bổ sung và một chỉ số thứ ba chỉ định một bước tiến (còn gọi là một bước) trong ký hiệu lát cắt của bạn. Sải bước có thể là tích cực hoặc tiêu cực>>> list1[0]: physics list2[1:5]: [2, 3, 4, 5]2 00. 00 Trong video này, bạn sẽ thực hành lập chỉ mục và cắt danh sách. Các phần tử của một danh sách có thể được truy cập bởi một chỉ số. Để làm điều đó, bạn đặt tên cho danh sách, rồi bên trong một cặp dấu ngoặc vuông, bạn sử dụng một số chỉ mục, giống như những gì tôi đang trình bày ngay tại đây 00. 17 Điều đó cho phép truy cập vào các phần tử riêng lẻ trong danh sách. Việc lập chỉ mục cho danh sách là không dựa trên. Vì vậy, nếu bạn có một danh sách như thế này, với sáu yếu tố này, các chỉ số bắt đầu bằng 9 và sẽ tăng lên đến #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]50 00. 36 Để tôi bảo bạn thử xem. Bắt đầu với một danh sách mới 00. 47 Đây là 9. Như đã mô tả, các chỉ mục không dựa trên danh sách, vì vậy #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]52 sẽ truy cập mục đầu tiên trong danh sách đó 01. 03 #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]53 sẽ truy cập cái thứ ba. Và trong trường hợp này, #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]54 sẽ truy cập cuối cùng. Một cách khác để đến đó là ________ 89 và ________ 156 (độ dài) của ________ 89 trừ đi _______ 158 01. 18 Nếu bạn sử dụng giá trị chỉ mục quá cao, Python sẽ đưa ra một ngoại lệ—một #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]59 nói rằng chỉ mục danh sách nằm ngoài phạm vi. Lập chỉ mục tiêu cực cũng có sẵn 01. 33 Nếu bạn muốn truy cập mục cuối cùng, bạn sẽ bắt đầu với list1[0]: physics list2[1:5]: [2, 3, 4, 5]00. Vì vậy, hãy tiếp tục làm việc với danh sách đó 9 Tôi sẽ yêu cầu bạn thử lập chỉ mục tiêu cực01. 44 list1[0]: physics list2[1:5]: [2, 3, 4, 5]02 sẽ truy cập mục cuối cùng, list1[0]: physics list2[1:5]: [2, 3, 4, 5]03, v.v. Vì vậy, trong trường hợp này, list1[0]: physics list2[1:5]: [2, 3, 4, 5]04—cũng là độ dài âm của danh sách của bạn—sẽ trả về mục đầu tiên 02. 05 Nếu bạn cố truy cập vào một chỉ mục nằm ngoài phạm vi, bạn cũng sẽ nhận được list1[0]: physics list2[1:5]: [2, 3, 4, 5]05 đó. Cắt lát cũng có sẵn. Cắt lát là một cú pháp lập chỉ mục sẽ trích xuất một phần từ danh sách của bạn. Vì vậy, trong ví dụ này, nếu 9 là danh sách của bạn, thì bên trong dấu ngoặc vuông, bạn sẽ có hai số chỉ mục được phân tách bằng dấu hai chấm ( 8) và nó sẽ trả về một phần của danh sách 9 đó sẽ bắt đầu bằng vị trí 2 và tiếp tục 02. 38 Sử dụng cùng một ví dụ từ trước, nếu bạn lấy list1[0]: physics list2[1:5]: [2, 3, 4, 5]21, bạn sẽ nhận được ba đối tượng ở giữa, bắt đầu từ chỉ mục list1[0]: physics list2[1:5]: [2, 3, 4, 5]22 và tăng dần lên chỉ mục list1[0]: physics list2[1:5]: [2, 3, 4, 5]23, nhưng không bao gồm #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]50 02. 50 Để tôi bảo bạn thử xem. Được rồi, đây là danh sách của bạn. Nếu bạn muốn cắt thì sao? . Đối với chỉ mục thứ hai, sử dụng #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]50. Từ list1[0]: physics list2[1:5]: [2, 3, 4, 5]22 đến nhưng không bao gồm #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]50 03. 05 tuyệt vời. Bạn cũng có thể sử dụng các chỉ số phủ định, vì vậy bạn có thể nói bắt đầu từ list1[0]: physics list2[1:5]: [2, 3, 4, 5]29 và đi đến #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list140, điều này giống như đi từ #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]58 đến list1[0]: physics list2[1:5]: [2, 3, 4, 5]23 03. 19 Và bạn có thể xác nhận rằng tại đây 03. 25 như là #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list143 03. 29 Có sẵn tốc ký. Bằng cách bỏ qua chỉ mục đầu tiên, lát cắt của bạn sẽ bắt đầu ở đầu danh sách và chuyển sang chỉ mục thứ hai. Nếu bạn bỏ qua chỉ mục cuối cùng, nó sẽ mở rộng lát cắt từ chỉ mục đầu tiên và đi đến cuối danh sách. Và nếu bạn bỏ qua cả hai chỉ mục, nó sẽ trả về một bản sao của toàn bộ danh sách 03. 54 Và không giống như một chuỗi, nó là một bản sao—không phải là một tham chiếu đến cùng một đối tượng. Vì vậy, điều gì sẽ xảy ra nếu bạn bỏ qua chỉ mục đầu tiên? . Giống như từ 9 đến list1[0]: physics list2[1:5]: [2, 3, 4, 5]23 04. 12 Và theo cách tương tự, việc loại bỏ chỉ mục thứ hai sẽ đi đến cùng, bắt đầu từ chỉ mục này cho đến hết. Ở đây, bạn có thể sử dụng #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]56, sẽ trả về giá trị là ________ 547 và nếu chúng ta đi từ list1[0]: physics list2[1:5]: [2, 3, 4, 5]22 trở lên nhưng không bao gồm ________ 547, làm chỉ mục 04. 35 Nếu bạn xóa cả hai chỉ mục và chỉ có một ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]40, nó sẽ trả về toàn bộ danh sách. Bạn có thể thử điều này bằng cách xem liệu nó có bằng với 9, tức là bằng với #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list143. Nhưng đây là một bản sao và không phải là một tài liệu tham khảo, trong khi nếu bạn đã thử ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]43 thì đó là một bản sao 05. 01 Nó không liên quan đến bản gốc. Điều đó có thể gây nhầm lẫn bởi vì nếu bạn đã từng làm việc với các chuỗi trước đây, nếu bạn có một chuỗi, ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]44, là ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]45, chỉ sử dụng cú pháp của ____ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 05. 20 Điều thú vị về nó không chỉ là ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]47 với chỉ số dấu hai chấm, mà nó còn là một tham chiếu đến đối tượng đó. Trong khi với một danh sách, nó trả về một đối tượng hoàn toàn mới 05. 37 Có thể thêm chỉ mục thứ ba sau dấu hai chấm bổ sung. Chỉ số thứ ba đó biểu thị một bước tiến, nhưng đôi khi nó còn được gọi là một bước. Vì vậy, trong ví dụ này, nếu bạn có một lát cắt đi từ 9 đến #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list147, với một bước là list1[0]: physics list2[1:5]: [2, 3, 4, 5]22, bạn sẽ trả về các đối tượng ở chỉ mục 9, list1[0]: physics list2[1:5]: [2, 3, 4, 5]22 và list1[0]: physics list2[1:5]: [2, 3, 4, 5]23— 84, 85 và 8606. 02 Vì vậy, nếu bạn đi từ chỉ số 9 lên đến #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list147 với sải chân là list1[0]: physics list2[1:5]: [2, 3, 4, 5]22, bạn sẽ thấy nó giành lấy mục thứ nhất, thứ ba và thứ năm, bỏ qua với sải chân là hai 06. 14 Thay vào đó, nếu bạn bắt đầu điều đó tại #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]58, thì bạn sẽ nhận được ba điều còn lại 06. 20 Và có thể có một bước tiến âm, mặc dù bạn đặt chỉ số đầu tiên là giá trị cao nhất, sau đó, nơi bạn muốn tăng lên, một 9, và trong trường hợp này, nó sẽ tăng lên #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list140 06. 36 Trên thực tế, một cú pháp đơn giản để đảo ngược danh sách của bạn một cách đơn giản là để trống hai chỉ mục đầu tiên bằng dấu hai chấm, sau đó là dấu hai chấm thứ hai và một list1[0]: physics list2[1:5]: [2, 3, 4, 5]00—điều này sẽ đảo ngược danh sách của bạn 06. 50 Tiếp theo, bạn sẽ thực hành sử dụng toán tử và một số hàm tích hợp sẵn của Python trong danh sách của bạn JulianV vào tháng 12. 13, 2019 Tốt đẹp Orlando Uribe vào ngày 8 tháng 3 năm 2020 Cảm ơn vì tài liệu này. Tôi đoán có một lỗi đánh máy (??) trong một trong những ví dụ được viết theo bước tiến (ví dụ video là OK) lỗi đánh máy #!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000]; print list1 del list1[2]; print "After deleting value at index 2 : " print list14 phát biểu đúng phải là ['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]4 nếu không thì, 8Chris Bailey Nhóm RP vào ngày 8 tháng 3 năm 2020 Xin chào @Orlando Uribe, Bạn nói đúng, tôi sẽ thay đổi nó để phù hợp với bài học trong video. Cảm ơn Ajay vào ngày 3 tháng 6 năm 2020 @chris Video rất nhiều thông tin, cảm ơn vì điều này. Khi tôi đang thực hành các ví dụ, có một nghi ngờ 1Với sải chân âm tại sao không bao gồm 9 Nó có loại trừ giá trị cuối cùng không? Chris Bailey Nhóm RP vào ngày 3 tháng 6 năm 2020 Xin chào @Ajay, Cảm ơn đã xem khóa học. Lát bạn đã tạo sẽ bắt đầu ở chỉ mục 6 và kết thúc ở chỉ mục 1 và không bao gồm chỉ mục 0, đó là lý do tại sao bạn không nhận được chỉ mục 0 trên 9. Nếu bạn đã sử dụng 0Điều đó sẽ bao gồm chỉ số 0. Tôi hy vọng điều này sẽ giúp giải thích những gì đang xảy ra. Dẫn lại từ văn bản dưới bài học
Ajay vào ngày 4 tháng 6 năm 2020 @chris cảm ơn vì đã làm rõ kiran vào tháng 8. 11, 2020 1Tại sao nó trả về chuỗi rỗng? . Bạn có thể cho tôi rõ ràng nhất về điều này? 2kiran vào tháng 8. 11, 2020 Giá trị sẽ là 19Bartosz Zaczyński Nhóm RP vào tháng 8. 12, 2020 Hãy nghĩ về các chỉ số âm như một ký hiệu tốc ký để trừ đi độ dài chuỗi đã cho 3Các chỉ số tiêu cực trong ví dụ “hello world” của bạn sẽ chuyển thành điều này 4Bạn đang nhận được một chuỗi trống vì chỉ số bên trái cao hơn chỉ số bên phải, trong khi bạn chưa chỉ ra thứ tự đảo ngược với đối số "bước" thứ ba. Nếu bạn đã làm, đây là bạn sẽ nhận được 5Bạn có thể lấy các chỉ số kết quả được sử dụng bởi vòng lặp bên dưới như thế này 6Nó trả về một bộ mà bạn có thể giải nén và chuyển đến hàm 00 7Đây là các chỉ số được sử dụng bởi cú pháp dấu ngoặc vuông kiran vào tháng 8. 12, 2020 Rực rỡ @Bartosz Zaczyński. Cảm ơn mo vào tháng 12. 21, 2021 Tôi vui vẻ bắt đầu sử dụng bpython; . Thử tất cả mọi thứ. Và nhiều hơn nữa. ) Làm điều đó tôi gặp phải điều này Chỉ mục trong Python là gì?Như đã thảo luận trước đó, hàm index() trong Python trả về vị trí của phần tử trong danh sách đã chỉ định hoặc các ký tự trong chuỗi . Nó tuân theo cùng một cú pháp cho dù bạn sử dụng nó trong danh sách hay chuỗi. Lý do là một chuỗi trong Python được coi là một danh sách các ký tự bắt đầu từ chỉ số 0.
chỉ mục là gì [Việc lập chỉ mục phủ định có thể được thực hiện bằng Python, không thể truy cập được bằng các ngôn ngữ lập trình khác. Điều này có nghĩa là -1 đại diện cho phần tử cuối cùng của mảng , trong khi -2 đại diện cho phần tử cuối cùng thứ hai của mảng. Lập chỉ mục tiêu cực của mảng bắt đầu ở cuối.
Chỉ mục () có phải là một phương thức chuỗi Python không?Phương thức chuỗi Python index() xác định xem chuỗi str có xuất hiện trong chuỗi hoặc trong chuỗi con của chuỗi hay không nếu chỉ mục bắt đầu beg và chỉ mục kết thúc được đưa ra. This method is same as find(), but raises an exception if sub is not found.
Python 1 có phải là một chỉ mục không?Python sử dụng lập chỉ mục dựa trên số không . Điều đó có nghĩa là, phần tử đầu tiên (giá trị 'đỏ') có chỉ số 0, phần tử thứ hai (giá trị 'xanh lá cây') có chỉ số 1, v.v. |