Lập chỉ mục trong Python là gì? . Vì vậy, hãy ngồi xuống và theo dõi bài viết của chúng tôi để hiểu sâu hơn về lập chỉ mục trong Python
Điều kiện tiên quyết – Iterables là gì?
Trước khi bắt đầu lập chỉ mục, hãy hiểu iterables là gì và chức năng chính của chúng là gì. Kiến thức về iterables là rất cần thiết để hỗ trợ lập chỉ mục
Vậy iterables là gì?
Đây là một loại đối tượng đặc biệt trong Python mà bạn có thể lặp lại. Có nghĩa là bạn có thể duyệt qua tất cả các phần tử hoặc thực thể khác nhau có trong đối tượng. Nó có thể dễ dàng đạt được bằng cách sử dụng các vòng lặp
Về cơ bản, thứ mà tất cả các mục có thể lặp lại này mang theo là hai phương thức đặc biệt được gọi là __iter__[] hoặc __getitem__[] thực hiện Ngữ nghĩa trình tự
#Lists are iterable items in Python. randomItems = [4, 6, 2, 56, 23, 623, 453] #Each individual element inside a list can be accessed using a for loop for item sin randomItems: print[item]
Ngoài Danh sách, Chuỗi và Bộ dữ liệu cũng là các lần lặp trong Python. Đây là một ví dụ về cách bạn có thể lặp qua Chuỗi
title = "Lose Yourself" #Looping through each character in the string for char in title: print[char]
đầu ra
L o s e Y o u r s e l f
Bây giờ chúng ta đã có một số ý tưởng về Iterables trong Python. Điều đó liên quan như thế nào đến Lập chỉ mục?
Lập chỉ mục trong Python là gì?
Lập chỉ mục trong Python là một cách để chỉ các mục riêng lẻ trong một lần lặp theo vị trí của nó. Nói cách khác, bạn có thể truy cập trực tiếp vào các yếu tố lựa chọn của mình trong một lần lặp và thực hiện các thao tác khác nhau tùy thuộc vào nhu cầu của bạn
Trước khi chúng ta đi vào các ví dụ về Lập chỉ mục trong Python, có một điều quan trọng cần lưu ý
Trong Python, các đối tượng được “lập chỉ mục bằng 0” nghĩa là số lượng vị trí bắt đầu từ 0. Nhiều ngôn ngữ lập trình khác cũng theo mô hình tương tự. Trên thực tế, nhiều bạn hẳn đã quen thuộc với nó vì sự phổ biến trên internet của nó trong văn hóa meme
Vì vậy, nếu có 5 phần tử hiện diện trong một danh sách. Sau đó, phần tử đầu tiên [i. e. phần tử ngoài cùng bên trái] giữ vị trí “không”, tiếp theo là các phần tử ở vị trí thứ nhất, thứ hai, thứ ba và thứ tư
fruits = ["apple", "grape", "orange", "guava", "banana"] #Printing out the indexes of Apples and Banana print["Index of Apple: ", fruits.index["apple"]] print["Index of Banana: ", fruits.index["banana"]]
đầu ra
Index of Apple: 0 Index of Banana: 4
Chỉ mục của một mục cụ thể trong danh sách có thể được tiết lộ khi phương thức index[] được gọi trong danh sách với tên mục được truyền dưới dạng đối số
Trong phần tiếp theo, cuối cùng chúng ta cũng tìm hiểu cách sử dụng phương thức index[] trên các đối tượng có thể lặp lại
Toán tử chỉ mục Python là gì?
Toán tử chỉ mục Python được biểu diễn bằng cách mở và đóng dấu ngoặc vuông. []. Tuy nhiên, cú pháp yêu cầu bạn đặt một số bên trong dấu ngoặc
Cú pháp toán tử chỉ mục Python
ObjectName[n] #Where n is just an integer number that represents the position of the element we want to access.
Các bước để sử dụng lập chỉ mục trong Python
Dưới đây, chúng ta sẽ tìm hiểu các ví dụ về việc sử dụng chỉ mục trong Python
1. Chuỗi lập chỉ mục
greetings = "Hello, World!" print[greetings[0]] #Prints the 0-th element in our string print[greetings[5]] #Prints the 5-th element in our string print[greetings[12]] #Prints the 12-th element in our string
đầu ra
H , !
Chúng ta có thể thấy rõ cách chức năng in của chúng ta truy cập các phần tử khác nhau trong đối tượng chuỗi của chúng ta để lấy các ký tự cụ thể mà chúng ta muốn
2. Lập chỉ mục tiêu cực trong Python
Gần đây, chúng tôi đã học cách sử dụng lập chỉ mục trong Danh sách và Chuỗi để nhận các mục cụ thể mà chúng tôi quan tâm. Mặc dù trong tất cả các trường hợp trước đây, chúng tôi đã sử dụng một số nguyên dương bên trong toán tử chỉ mục của mình [dấu ngoặc vuông], nhưng không nhất thiết phải như vậy
Thông thường, nếu chúng ta quan tâm đến một vài phần tử cuối cùng của danh sách hoặc có thể chúng ta chỉ muốn lập chỉ mục danh sách từ đầu đối diện, chúng ta có thể sử dụng số nguyên âm. Quá trình lập chỉ mục từ đầu đối diện này được gọi là Lập chỉ mục tiêu cực
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
>>>
>>> mylist[m]
Đâ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
>>>
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
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
>>>
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[-1]
'lobster'
>>> a[-2]
'ham'
>>> a[-5]
'egg'
>>> a[-6]
'spam'
>>> a[-len[a]]
'spam'
>>> a[-8]
Traceback [most recent call last]:
File "", line 1, in
a[-8]
IndexError: list index out of range
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
9 là một danh sách, thì >>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[-1]
'lobster'
>>> a[-2]
'ham'
>>> a[-5]
'egg'
>>> a[-6]
'spam'
>>> a[-len[a]]
'spam'
>>> a[-8]
Traceback [most recent call last]:
File "", line 1, in
a[-8]
IndexError: list index out of range
0 trả về phần của >>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
9- Bắt đầu với tư thế
2>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
- Tối đa nhưng không bao gồm
3>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
- Lập chỉ mục tiêu cực cũng có thể được sử dụng
Đây là một ví dụ
>>>
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[2:5]
['bacon', 'tomato', 'ham']
>>> a[-5:-2]
['egg', 'bacon', 'tomato']
>>> a[1:4]
['egg', 'bacon', 'tomato']
>>> a[-5:-2] == a[1:4]
True
Bỏ qua chỉ mục đầu tiên và/hoặc cuối cùng
- Bỏ qua chỉ mục đầu tiên
4 bắt đầu lát cắt ở đầu danh sách>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
- Việc bỏ qua chỉ mục cuối cùng
5 sẽ mở rộng lát cắt từ chỉ mục đầu tiên>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
2 đến cuối danh sách>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
- Bỏ qua cả hai chỉ mục
7 trả về một bản sao của toàn bộ danh sách, nhưng không giống như một chuỗi, đó là một bản sao, không phải là một tham chiếu đến cùng một đối tượng>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
Đây là một ví dụ
>>>
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[:4]
['spam', 'egg', 'bacon', 'tomato']
>>> a[0:4]
['spam', 'egg', 'bacon', 'tomato']
>>> a[2:]
['bacon', 'tomato', 'ham', 'lobster']
>>> a[2:len[a]]
['bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[:]
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a == a[:]
True
>>> a is a[:]
False
>>> s = 'mybacon'
>>> s[:]
'mybacon'
>>> s == s[:]
True
>>> s is s[:]
True
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[-1]
'lobster'
>>> a[-2]
'ham'
>>> a[-5]
'egg'
>>> a[-6]
'spam'
>>> a[-len[a]]
'spam'
>>> a[-8]
Traceback [most recent call last]:
File "", line 1, in
a[-8]
IndexError: list index out of range
8 bổ sung và một chỉ số thứ ba chỉ định một sải châ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>>>
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0:6:2]
['spam', 'bacon', 'ham']
>>> a[1:6:2]
['egg', 'tomato', 'lobster']
>>> a[6:0:-2]
['lobster', 'tomato', 'egg']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[::-1]
['lobster', 'ham', 'tomato', 'bacon', 'egg', 'spam']
JulianV trên
Đẹp
Orlando Uribe trên
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
>>> a[0:6:-2]
['lobster', 'tomato, 'egg']
phát biểu đúng phải là
>>> a[6:0:-2]
['lobster', 'tomato, 'egg']
nếu không thì,
>>> a[0:6:-2]
[]
Chris Bailey Nhóm RP trên
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. Thanks
Ajay trên
@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ờ
In [43]: a = [9, 1, 2, 4, 5, 6, 8]
In [44]: a[6:0:-2]
Out[44]: [8, 5, 2]
Vớ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 trên
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
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
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ì>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[0] 'spam' >>> a[2] 'bacon' >>> a[5] 'lobster' >>> a[len[a]-1] 'lobster' >>> a[6] Traceback [most recent call last]: File "", line 1, in a[6] IndexError: list index out of range
0 trả về phần của>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
9>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[0] 'spam' >>> a[2] 'bacon' >>> a[5] 'lobster' >>> a[len[a]-1] 'lobster' >>> a[6] Traceback [most recent call last]: File "", line 1, in a[6] IndexError: list index out of range
- Bắt đầu với tư thế
2>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
- Tối đa nhưng không bao gồm
3>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster'] >>> a[-1] 'lobster' >>> a[-2] 'ham' >>> a[-5] 'egg' >>> a[-6] 'spam' >>> a[-len[a]] 'spam' >>> a[-8] Traceback [most recent call last]: File "", line 1, in a[-8] IndexError: list index out of range
Ajay trên
@chris cảm ơn vì đã làm rõ
kiran trên
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
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?
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
2kiran trên
Giá trị sẽ là
In [43]: a = [9, 1, 2, 4, 5, 6, 8]
In [44]: a[6:0:-2]
Out[44]: [8, 5, 2]
9Bartosz Zaczyński Nhóm RP trên
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
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
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
6Nó trả về một bộ mà bạn có thể giải nén và chuyển đến hàm
>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
00>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0]
'spam'
>>> a[2]
'bacon'
>>> a[5]
'lobster'
>>> a[len[a]-1]
'lobster'
>>> a[6]
Traceback [most recent call last]:
File "", line 1, in
a[6]
IndexError: list index out of range
7Đây là các chỉ số được sử dụng bởi cú pháp dấu ngoặc vuông
kiran trên
Rực rỡ @Bartosz Zaczyński. Thanks
mo on
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