Python có bao gồm chỉ mục cuối cùng không?

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ề một 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 vị trí ________ 22
  • Tối đa nhưng không bao gồm
    >>> 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
    
    3
  • 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ỉ số đầu tiên và/hoặc cuối cùng

  • Bỏ qua 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
    
    4 bắt đầu lát cắt ở đầu danh sách
  • Bỏ qua chỉ mục cuối cù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
    
    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
  • Bỏ qua cả hai chỉ mục
    >>> 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
    
    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

Đây là một ví dụ

>>>

>>> 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
3

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 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

>>>

>>> 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
5

JulianV trên

Tốt đẹ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 = ['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
6

phát biểu đúng phải là

>>> 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

nếu không 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
8

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. Cảm ơn

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ờ

>>> 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

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

>>> 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ề một 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 vị trí ________ 22
  • Tối đa nhưng không bao gồm
    >>> 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
    
    3

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
1

Tạ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
2

kiran trên

Giá trị sẽ là

>>> 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
99

Bartosz 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
3

Cá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
4

Bạn đang nhận được một chuỗi rỗ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
5

Bạ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
6

Nó 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. Cảm ơn

mo on

Tôi vui vẻ bắt đầu sử dụng bpython; . Thử tất cả mọi thứ. Và hơn thế nữa. ] Làm điều đó tôi gặp phải điều này

Phạm vi trong Python có bao gồm phần tử cuối cùng không?

Theo mặc định, Phạm vi[n] là duy nhất, vì vậy nó không bao gồm số cuối cùng trong kết quả . Nó tạo ra dãy số từ đầu đến cuối -1. Ví dụ: phạm vi [5] sẽ tạo ra [0, 1, 2, 3, 4]. Kết quả chứa các số từ 0 đến tối đa 5 nhưng không phải năm.

Slice có bao gồm phần tử cuối cùng không?

Mặt khác, một lát cắt là một dạng xem linh hoạt, có kích thước động vào các phần tử của một mảng. Trong thực tế, lát phổ biến hơn nhiều so với mảng. Loại []T là một lát cắt có các phần tử thuộc loại T. Điều này chọn một phạm vi nửa mở bao gồm phần tử đầu tiên, nhưng loại trừ phần tử cuối cùng .

Chủ Đề