Ví dụ về lập chỉ mục và cắt trong python là gì?

Hầu như tất cả các nhà phát triển Python đều gặp phải lập chỉ mục sớm khi họ tìm hiểu về danh sách. Như bạn có thể đã biết, danh sách Python có chỉ mục dựa trên số không. Điều đó có nghĩa là, đưa ra một danh sách có tên là

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
5, ví dụ,
numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
6 trả về phần tử đầu tiên trong ist, trong khi
numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
7 trả về phần tử cuối cùng

Cho đến nay, không có gì để xem ở đây, folks. Vâng, đối với những người mới, việc đếm từ không đến chín cho một danh sách mười điều thoạt đầu có vẻ hơi lạ. Nhưng Python không phải là duy nhất ở điểm này - hầu hết các ngôn ngữ lập trình hàng đầu được sử dụng ngày nay đều lập chỉ mục theo cùng một cách. Chúng bao gồm C, C++, Java, C# và JavaScript

Điều làm cho lập chỉ mục trong Python đáng viết không phải là sự trùng lặp với các ngôn ngữ khác mà là cách nó nổi bật. Một số tính năng của chỉ mục Python làm cho nó khác với các ngôn ngữ khác

  • Lập chỉ mục gần như đã bị trục xuất khỏi các vòng lặp của Python. Chúng vẫn có sẵn, nhưng sử dụng chúng trong các vòng lặp không phải là tiêu chuẩn
  • Bạn có thể sử dụng chỉ mục phủ định bắt đầu bằng -1 để lập chỉ mục từ cuối chuỗi. -1 trả về mục cuối cùng, -2 trả về mục tiếp theo, v.v.
  • Một hình thức lập chỉ mục, cắt lát mạnh mẽ, mở rộng, có thể được sử dụng để chọn các chuỗi con. Bằng cách sử dụng phép cắt kết hợp với các chỉ mục phủ định, bạn có thể thu được kết quả đảo ngược của một chuỗi. Bạn cũng có thể sử dụng cắt lát để lấy mẫu trình tự tại các điểm khác nhau

Nếu bạn chưa quen với việc lập chỉ mục và cắt lát trong Python, những gạch đầu dòng đó có thể khiến bạn khá trừu tượng. Nhưng đừng lo lắng. Chúng tôi sẽ đi sâu vào một số ví dụ về cách thức hoạt động của nó trong thực tế trong bài viết này. Hơn nữa, chúng tôi đã bao gồm một số bài tập ở cuối để giúp củng cố những gì bạn đã học

Lập chỉ mục tích cực đơn giản

Bạn có thể đã biết về tính năng này, nhưng để đảm bảo rằng tất cả chúng ta đều bắt đầu ở cùng một nơi, hãy bắt đầu với một số ví dụ đơn giản về lập chỉ mục tích cực, sử dụng danh sách, bộ dữ liệu và chuỗi. Như được hiển thị ở đây, chỉ mục đơn giản là một số được đặt trong dấu ngoặc vuông mà bạn đặt sau tên của dãy

# Simple positive indexing, zero based

numbers = [42, 1941, 1066, 1969]
indexes = "Super simple!"
stooges = ["Moe", "Larry", "Curly"]

print[numbers[0]]

last_index = len[indexes] - 1
print[indexes[last_index]]
print[f"The funniest stooge was {stooges[2]}."]

đầu ra

42
!
The funniest stooge was Curly.

Một lần nữa, trong mọi trường hợp, giới hạn dưới của chuỗi bằng 0 và giới hạn trên là độ dài của chuỗi trừ đi một. Sử dụng một chỉ mục bên ngoài phạm vi này khiến Python phát sinh lỗi IndexOutOfBounds

OK, tại thời điểm này, bạn biết rằng Python sử dụng các chỉ mục dựa trên số không, điều này sẽ quen thuộc với bạn nếu bạn đã viết mã bằng Java, C, C# hoặc JavaScript. Tiếp theo, hãy tham gia vào một số niềm vui chỉ dành cho Python

Đối với tất cả các chỉ mục, đối với các chuỗi có thể thay đổi [quan trọng nhất trong số đó là loại danh sách], việc lập chỉ mục cũng có thể được sử dụng để đặt giá trị cũng như truy xuất chúng

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]

đầu ra

[1, 2, 8, 4]
[1, 2, 3, 4]

Lập chỉ mục tiêu cực trong Python

Lập chỉ mục phủ định trong Python đề cập đến việc truy cập một chuỗi, chẳng hạn như danh sách, bộ dữ liệu hoặc chuỗi, sử dụng các chỉ số số âm. Lập chỉ mục phủ định bắt đầu từ cuối chuỗi và đếm ngược. Do đó, bạn có thể lấy phần tử cuối cùng có chỉ số -1. Phần tử thứ hai đến phần tử cuối cùng có thể được truy cập bằng cách sử dụng -2, v.v.

Sử dụng chỉ số âm có thể hữu ích khi làm việc với danh sách có độ dài thay đổi. Chúng cho phép bạn truy cập các phần tử từ cuối danh sách mà không cần biết trước độ dài của danh sách

Hãy lấy ký tự cuối cùng từ một dòng Zen of Python, sử dụng lập chỉ mục tích cực và tiêu cực

saying = "Simple is better than complex"

# Get the last character using positive indexing
print[saying[len[saying] - 1]]

# Using negative indexing.
print[saying[-1]]

đầu ra

________số 8

Lập chỉ mục phủ định thậm chí còn trở nên hữu ích hơn khi được kết hợp với cắt lát, trong đó nó cũng có thể được sử dụng để đảo ngược trình tự. Ví dụ: nếu bạn có một danh sách các đối tượng và bạn muốn đảo ngược thứ tự sắp xếp của danh sách, bạn có thể sử dụng lập chỉ mục phủ định để làm như vậy

Lấy một chỉ mục trong Python cho vòng lặp

Như chúng tôi đã đề cập ở trên, nói chung, các chỉ mục không cần thiết trong các vòng lặp Python. Nhiều ngôn ngữ có cú pháp như thế này, bao gồm Java, C# và [kể từ C++ 11], C++. Tuy nhiên, những ngôn ngữ đó cho phép bạn trở lại sử dụng vòng lặp for giống như những ngôn ngữ được tìm thấy trong C, trong đó chỉ mục vẫn phải được sử dụng rõ ràng. Nếu bạn tò mò, đây là cách C thực hiện việc này

#include 

int main[void] {
    const int LEN = 3;
    char chars[LEN] = {'A', 'B', 'C'};
    for[int i = 0; i < LEN; i++] {
        printf["Found a char at index %d: %c\n", i, chars[i]];
    }
}

đầu ra

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
0

Tất nhiên, trong Python, chúng ta có thể lặp qua danh sách đơn giản hơn nhiều, vì vậy chúng ta thường làm điều này

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
1

đầu ra

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
2

Sự đơn giản này thường là một điều tốt — tất nhiên trừ khi chúng ta muốn hoặc cần sử dụng chỉ mục như chúng ta đã làm trong C. Đừng lo lắng, hàm liệt kê sẽ cho phép chúng ta lấy cả chỉ số và giá trị cùng một lúc. Đây là cách chúng ta có thể nhận được đầu ra giống như mã C tạo ra

42
!
The funniest stooge was Curly.
0

lát trăn. Chỉ số về steroid

Nếu tôi phải đặt tên cho một tính năng mà lập chỉ mục Python rất khác so với các ngôn ngữ khác, thì đó sẽ là tính năng lát cắt. Một lát tương tự như một chỉ mục, nhưng trong khi một chỉ mục cho phép chúng ta truy xuất một phần tử, thì một biểu thức lát cho phép chúng ta truy xuất hoặc đặt nhiều phần tử cùng một lúc. Cũng như các chỉ mục, biểu thức được đặt sau tên dãy trong ngoặc vuông và có cú pháp cơ bản như sau

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
8

Dưới đây là ý nghĩa của các bước khác nhau

  • Giá trị cho bắt đầu là một số nguyên đại diện cho phần đầu của lát cắt. Nếu bỏ qua, nó mặc định bằng không, tôi. e. , đầu dãy
  • Giá trị cho là một số nguyên đại diện cho chỉ mục cuối cùng mà bạn muốn, cộng với một. Nếu bị bỏ qua, nó sẽ mặc định là độ dài của chuỗi, nhưng vì đây là một phần vượt qua chỉ mục, nên mặc định cho “dừng” thực sự là phần cuối của chuỗi
  • Giá trị chuỗi và dấu hai chấm cuối cùng thường bị bỏ qua và nếu có thì nó được mặc định là 1. Nếu giá trị này là âm, lát cắt được trích xuất theo thứ tự ngược lại

Ví dụ sau đây cho thấy điều này rõ ràng hơn. Hãy bắt đầu với các ví dụ mà chúng ta cắt theo thứ tự tích cực

42
!
The funniest stooge was Curly.
1

đầu ra

42
!
The funniest stooge was Curly.
2

Cắt lát thường được sử dụng thay vì một phương thức như “chuỗi con” để lấy các phần của chuỗi. Chẳng hạn, có thể rất thuận tiện để xóa tiền tố có độ dài cố định khỏi chuỗi

42
!
The funniest stooge was Curly.
3

đầu ra

42
!
The funniest stooge was Curly.
4

Cắt ngược lại là một vấn đề đơn giản khi sử dụng giá trị bước âm Sử dụng số âm, giá trị đầu sẽ lớn hơn giá trị cuối

42
!
The funniest stooge was Curly.
5

đầu ra

42
!
The funniest stooge was Curly.
6

Cắt ngược lại ít phổ biến hơn nhiều so với làm việc với các tập hợp con của danh sách hiện có, nhưng nó phổ biến như một câu hỏi phỏng vấn Python. “Cho một chuỗi,

numbers = [1,2,8,4]
print[numbers]

# Change third item in the list
numbers[2] = 3
print[numbers]
9 bạn sẽ đảo ngược nó như thế nào?”

Hành vi chuyển nhượng khi cắt

Việc gán cho một lát cắt sẽ thay thế lát cắt đó bằng nội dung của một danh sách hoặc đối tượng có thể lặp lại khác. Nó hoạt động giống như tìm kiếm và thay thế theo nghĩa là nó rất linh hoạt đối với kích thước. Số mục được thêm vào không cần khớp với số mục trong lát Danh sách tăng hoặc giảm để chứa các phần tử mới

Ví dụ

42
!
The funniest stooge was Curly.
7

đầu ra

42
!
The funniest stooge was Curly.
8

Lưu ý rằng đặc biệt đối với các chuỗi, mặc dù có thể thay thế các phân đoạn bằng cách sử dụng các lát cắt, nhưng việc sử dụng phương pháp "thay thế" để thực hiện điều đó thường thuận tiện hơn nhiều

Bài tập lập chỉ mục và cắt lát Python

Dưới đây là một số bài tập và bài toán mẫu về lập chỉ mục và cắt lát trong Python Hãy thử thực hiện các bài tập này

cắt lát trong Python với ví dụ là gì?

Hàm đầu tiên nhận một đối số duy nhất trong khi hàm thứ hai nhận ba đối số và trả về một đối tượng lát cắt. đối tượng lát cắt này có thể được sử dụng để lấy phần phụ của bộ sưu tập . Ví dụ: nếu chúng ta muốn lấy hai phần tử đầu tiên từ phần tử thứ mười? .

Python lập chỉ mục lát cắt là gì?

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 là một danh sách thì a[m. n] trả về phần của a. Bắt đầu với vị trí m. Lên đến nhưng không bao gồm n. Lập chỉ mục tiêu cực cũng có thể được sử dụng.

cắt lát trong danh sách là gì đưa ra một ví dụ?

Việc cắt danh sách đề cập đến việc truy cập vào một phần cụ thể hoặc một tập hợp con của danh sách cho một số thao tác trong khi danh sách ban đầu vẫn không bị ảnh hưởng . Toán tử cắt trong python có thể lấy 3 tham số trong đó 2 tham số là tùy chọn tùy theo yêu cầu.

Lập chỉ mục và cắt trong NumPy là gì?

Numpy với Python . Cắt cơ bản là một phần mở rộng của khái niệm cơ bản của Python về cắt thành n chiều. Một đối tượng lát Python được xây dựng bằng cách cung cấp các tham số bắt đầu, dừng và bước cho hàm lát cắt tích hợp. field access, basic slicing and advanced indexing. Basic slicing is an extension of Python's basic concept of slicing to n dimensions. A Python slice object is constructed by giving start, stop, and step parameters to the built-in slice function.

Chủ Đề