Slice trong danh sách Python là gì?

Trên trang này. lập chỉ mục lát với [. ], lập chỉ mục phủ định, lát cắt và lập chỉ mục phủ định trên chuỗi

Video hướng dẫn

Slice trong danh sách Python là gì?

Python 3 thay đổi

in(x,y) thay vì in x, y

Video Tổng Hợp

  • Có thể "cắt" một danh sách trong Python. Điều này sẽ trả về một phân đoạn cụ thể của một danh sách nhất định. Ví dụ: lệnh myList[2] sẽ trả về mục thứ 3 trong danh sách của bạn (hãy nhớ rằng Python bắt đầu đếm bằng số 0)
  • Bạn có thể mở rộng độ dài và thay đổi vị trí của phân đoạn danh sách được trả về bằng dấu hai chấm trong lệnh của mình. Bán tại. myList[2. 5] sẽ trả về các mục từ thứ 3 đến thứ 5 trong danh sách của bạn. Đang gõ myList[. 5] sẽ trả về mọi mục cho đến mục thứ 5 trong danh sách, trong khi myList[2. ] mặt khác, với dấu hai chấm sau chữ số, sẽ trả về mọi mục bắt đầu bằng số thứ 3
  • Python cũng có thể trả về một phân đoạn của danh sách đếm từ cuối. Điều này được thực hiện đơn giản bằng cách chèn một số âm trước các chữ số mong muốn trong lệnh lát. Bán tại. myList[-5] sẽ trả lại thứ năm của bạn từ mục cuối cùng

Tìm hiểu thêm

  • Như trong hướng dẫn trước, cơ chế lập chỉ mục và cắt lớp phủ định tương tự mở rộng cho các chuỗi. Dưới đây, các chuỗi con khác nhau trong chuỗi 'python' được trả về

Luyện tập

Danh sách này là fox = ['the', 'quick', 'brown', 'fox', 'jumps', 'over']. Làm cách nào để bạn có được ['quick', 'brown', 'fox'] từ danh sách này bằng cách sử dụng tính năng cắt lát?

Có rất nhiều cách

>>> fox = ['the', 'quick', 'brown', 'fox', 'jumps', 'over'] 
>>> fox[1:4]
['quick', 'brown', 'fox'] 
>>> fox[1:-2]
['quick', 'brown', 'fox'] 
>>> 

Sử dụng cắt lát, làm thế nào bạn có thể nhận được 'nha khoa' từ 'tình cờ'?

Một lần nữa, nhiều cách

>>> 'incidentally'[4:10]
'dental' 
>>> 'incidentally'[4:-2]
'dental' 
>>> 'traction'[2:10]
'action' 
>>> 'traction'[2:]
'action'
>>> 

Khám phá

Hướng dẫn này dạy bạn cách chia nhỏ các lần lặp, chẳng hạn như danh sách trong Python. Lý thuyết được sao lưu với các ví dụ tuyệt vời

Lập chỉ mục Python

Trong Python, bạn có thể truy cập một phần tử trong chuỗi có chỉ mục. Chỉ số này là một số nguyên đại diện cho vị trí của phần tử cụ thể đó

Trong trường hợp bạn không quen với việc lập chỉ mục hoặc lập chỉ mục phủ định, vui lòng đọc phần này trước khi chuyển sang phần cắt lát

Lập chỉ mục dựa trên Zero trong Python

Trong Python, việc lập chỉ mục bắt đầu từ con số không

Điều này có nghĩa là phần tử đầu tiên có chỉ số bằng 0 và phần tử thứ hai có chỉ số bằng một, v.v.

Đây là một minh họa

Positive indexing of a list of names in Python

Cách sử dụng chỉ mục để truy cập các phần tử trong Python

Bây giờ bạn đã biết lập chỉ mục nghĩa là gì, hãy xem cách sử dụng chỉ mục để lấy giá trị từ các chuỗi

Trong Python, bạn có thể truy cập phần tử thứ n của một lần lặp, chẳng hạn như một danh sách, với một chỉ mục. Để thực hiện việc này, hãy sử dụng toán tử dấu ngoặc vuông bằng cách chuyển chỉ mục làm đối số

Chẳng hạn, hãy tạo một danh sách các số và hãy truy cập vào phần tử thứ 2 và thứ 3 của nó

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)

đầu ra

100 1000

Như bạn có thể thấy, đối số thứ 2 có chỉ số là 1 và đối số thứ 3 có chỉ số là 2

Lập chỉ mục không chỉ giới hạn trong danh sách. Nó cũng hoạt động cho chuỗi và bộ dữ liệu

Dưới đây là các ví dụ

# First letter of a string
greeting = "Hello world!"
first_letter = greeting[0]
print(first_letter) # Prints 'H'

# z-cooridnate of a 3D tuple
coords = 0, 2, 9
z = coords[2]
print(z) # Prints 9

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

Python cũng hỗ trợ lập chỉ mục tiêu cực. Cách lập chỉ mục này bắt đầu ở cuối lần lặp, chẳng hạn như danh sách

Không giống như lập chỉ mục (tích cực), lập chỉ mục tiêu cực không bắt đầu từ 0. Thay vào đó, nó bắt đầu từ -1, trong đó -1 là phần tử cuối cùng (phần tử ngoài cùng bên phải). Sau đó -2 là lần cuối cùng thứ hai, v.v.

Đây là một minh họa về lập chỉ mục tiêu cực trong Python

Negative indexing of a list of names in Python

Ví dụ: hãy truy cập phần tử cuối cùng và phần tử đầu tiên của danh sách có chỉ mục phủ định

nums = [10, 100, 1000, 10_000]

last = nums[-1]
first = nums[-4]

print(last, first)

đầu ra

10000 10

Tương tự như lập chỉ mục tích cực, lập chỉ mục tiêu cực cũng hoạt động với các bộ dữ liệu và danh sách

Ví dụ

# Last letter of a string
greeting = "Hello world!"
last_letter = greeting[-1]
print(last_letter) # Prints '!'

# z-cooridnate of a 3D tuple
coords = 0, 2, 9
z = coords[-1]
print(z) # Prints 9

Bây giờ bạn đã hiểu cơ bản về cách lập chỉ mục hoạt động trong Python

Tiếp theo, hãy chuyển sang phần cắt lát, liên quan nhiều đến lập chỉ mục

Cắt lát Iterables trong Python

Cắt lát Python cho phép bạn truy cập một loạt các phần tử từ một lần lặp. Chẳng hạn, bạn có thể lấy ba số đầu tiên từ danh sách các số bằng cách cắt

Cắt lát trong Python dựa trên lập chỉ mục dựa trên số không

Cú pháp của slice như sau

________số 8_______

Cú pháp này được gọi là cú pháp lập chỉ mục của việc cắt lát. (Sau này, bạn sẽ học một cú pháp thay thế. )

Ở đâu

  • bắt đầu đánh dấu chỉ mục bắt đầu của lát cắt. Mặc định ở đầu danh sách
  • điểm dừng đánh dấu sự kết thúc của lát cắt. Đại diện cho giá trị đầu tiên không được chọn cho lát cắt. Mặc định trả lại phần còn lại của danh sách
  • stepsize chỉ định có bao nhiêu phần tử để nhảy qua. Mặc định là 1

ví dụ 1. Hãy truy cập các phần tử thứ 2, thứ 3 và thứ 4 của danh sách

Để làm điều này, bạn cần phải

  • Bắt đầu cắt từ phần tử thứ 2 (1 chỉ mục)
  • Dừng cắt trước phần tử thứ 5 (4 chỉ mục)
  • Bước qua 1 giá trị tại một thời điểm

Đây là cách nó trông trong mã

[-1, -2, -3]
0

đầu ra

[-1, -2, -3]
1

Vì kích thước bước mặc định là 1 nên bạn không cần viết riêng. Thay vào đó, bạn có thể đã viết

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
9

ví dụ 2. Hãy truy cập ba phần tử đầu tiên của danh sách

Để làm điều này, bạn cần phải

  • Bắt đầu cắt từ đầu danh sách
  • Dừng cắt trước phần tử thứ 4 (chỉ số 3)
  • Bước qua 1 giá trị tại một thời điểm

Nhưng như bạn đã biết, bắt đầu có nghĩa là bắt đầu lại từ đầu theo mặc định. Ngoài ra, kích thước bước là 1 theo mặc định. Vì vậy, chúng ta có thể bỏ qua cả hai

Đây là cách nó trông trong mã

[-1, -2, -3]
2

đầu ra

[-1, -2, -3]
3

ví dụ 3. Hãy lấy mọi phần tử thứ ba của danh sách

Để làm điều này

  • Bắt đầu cắt từ đầu
  • Dừng cắt ở cuối
  • Bước qua 3 giá trị

Khi bạn bắt đầu từ đầu và kết thúc ở cuối, bạn không cần chỉ định tham số bắt đầu và dừng. Điều duy nhất còn lại là kích thước bước, cần được đặt 3

Đây là cách nó trông trong mã

[-1, -2, -3]
4

đầu ra

[-1, -2, -3]
5

Cắt lát âm trong Python

Trong Python, tương tự như lập chỉ mục phủ định, bạn có thể sử dụng phép cắt phủ định. Điều này có nghĩa là bạn truy cập vào một loạt các giá trị bằng cách sử dụng các chỉ mục phủ định làm tham số bắt đầu và dừng

Phép cắt âm tuân theo cú pháp tương tự như phép cắt dương với các tham số bắt đầu và kết thúc là âm

________số 8_______

Nhân tiện, bạn cũng có thể xác định kích thước bước âm để lùi lại khi cắt

ví dụ 1. hãy lấy ba phần tử cuối cùng từ một danh sách

Để làm điều này, bạn cần phải

  • Bắt đầu cắt ở phần tử cuối cùng thứ 3 (chỉ số -3)
  • Dừng lại ở cuối danh sách
  • Bước qua 1 giá trị tại một thời điểm

Điều này có nghĩa là bạn chỉ cần chỉ định tham số bắt đầu ở -3 khi cắt. Điều này làm cho lát bắt đầu từ -3 và tự động đi qua phần còn lại của danh sách

Đây là cách nó trông

[-1, -2, -3]
7

đầu ra

[-1, -2, -3]
8

ví dụ 2. Đảo ngược một danh sách các số

Để làm điều này, bạn có thể sử dụng cắt lát

  • Bắt đầu từ cuối danh sách
  • Dừng ở đầu danh sách
  • Lùi lại 1 giá trị tại thời điểm (-1 bước)

Nói cách khác, bạn không cần chỉ định tham số bắt đầu hoặc dừng. Điều duy nhất bạn cần chỉ định là kích thước bước -1 để bắt đầu từ cuối và kết thúc từ đầu

Đây là cách nó trông trong mã

[-1, -2, -3]
9

đầu ra

iterable[start:stop:stepsize]
0

Bây giờ bạn đã hiểu cách cắt hoạt động trong Python bằng cách sử dụng cú pháp lập chỉ mục

Ngoài ra, bạn có thể sử dụng các đối tượng lát có sẵn khi cắt lát lặp lại

Cắt đối tượng trong Python

Trong Python, có một loại tích hợp được gọi là slice

Để tạo một đối tượng slice, hãy sử dụng hàm slice() có sẵn với cú pháp sau

iterable[start:stop:stepsize]
1

Ở đâu

  • start là chỉ mục bắt đầu tại đó quá trình cắt bắt đầu. Mặc định là Không có
  • stop là chỉ số kết thúc cho đến khi quá trình cắt tiếp tục. Cắt lát dừng tại điểm dừng – 1
  • stepsize là số item nhảy qua khi slice. Mặc định là Không có

Điểm của một đối tượng lát là bạn có thể thay thế chỉ mục để cắt (

100 1000
0) bằng
100 1000
1 để cắt một lần lặp

Hãy quay lại một trong những ví dụ trước, nơi chúng tôi đã truy xuất các phần tử thứ 2, thứ 3 và thứ 4 từ danh sách

[-1, -2, -3]
0

Ở đây bạn đã sử dụng cú pháp cắt trong đó bạn xác định điểm bắt đầu, điểm dừng và kích thước bước trực tiếp bên trong dấu ngoặc vuông

Bây giờ, thay vì làm theo cách này, hãy sử dụng một đối tượng lát cắt

iterable[start:stop:stepsize]
3

đầu ra

iterable[start:stop:stepsize]
4

Như bạn có thể thấy, điều này dẫn đến kết quả chính xác như nhau

Bạn có thể sử dụng một đối tượng lát để cắt danh sách theo bất kỳ cách nào bạn muốn. Nhưng thay vì bỏ qua bắt đầu, dừng hoặc kích thước bước, hãy sử dụng Không có

Ví dụ, hãy đảo ngược một danh sách với một đối tượng slice

iterable[start:stop:stepsize]
5

đầu ra

iterable[start:stop:stepsize]
6

Ở đây,

100 1000
2 hoạt động giống như
100 1000
3

Khi sử dụng Slicing trong Python

Cắt lát rất hữu ích nếu bạn muốn truy cập, sửa đổi hoặc xóa các phần của một lần lặp

Hãy xem một số ví dụ về từng trường hợp sử dụng

Truy cập các phần tử với Slicing trong Python

Truy cập các phạm vi phần tử bằng cách cắt là trường hợp sử dụng phổ biến để cắt

Trong hướng dẫn này, bạn đã thấy hàng chục ví dụ về cách truy cập các phần của iterables bằng cách cắt

Ví dụ: hãy lấy ba giá trị đầu tiên từ một bộ dữ liệu

iterable[start:stop:stepsize]
7

đầu ra

iterable[start:stop:stepsize]
8

Một ứng dụng rất phổ biến để truy cập các lần lặp bằng cách cắt là đảo ngược một lần lặp trong Python

Ví dụ: hãy đảo ngược một chuỗi

iterable[start:stop:stepsize]
9

đầu ra

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
0

Sửa đổi các phần tử với Slicing trong Python

Đôi khi bạn có thể muốn sửa đổi một loạt các mục trong một trình tự. Thay vì sửa đổi các giá trị một cách riêng biệt hoặc sử dụng vòng lặp for, bạn có thể sử dụng tính năng cắt lát

Ví dụ đơn giản, hãy thay thế hai phần tử đầu tiên của danh sách bằng hai phần tử khác

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
1

đầu ra

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
2

Như một ví dụ nâng cao hơn một chút, hãy biến mọi số thứ hai thành âm trong danh sách các số

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
3

đầu ra

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
4

Xóa phần tử với Slicing trong Python

Bạn có thể sử dụng cắt lát để loại bỏ các phạm vi mục trong một lần lặp. Để làm điều này, hãy sử dụng câu lệnh del có sẵn trên một lát cắt

Chẳng hạn, hãy xóa mọi phần tử thứ hai trong danh sách

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
5

đầu ra

nums = [10, 100, 1000, 10_000, 100_000]

second = nums[1]
third = nums[2]

print(second, third)
6

Phần kết luận

Hôm nay bạn đã học cách cắt hoạt động trong Python

Tóm lại, cắt lát có nghĩa là truy cập nhiều phần tử trong một lần lặp cùng một lúc. Cắt lát trả về một chuỗi con của chuỗi gốc

Cắt một danh sách có nghĩa là gì?

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.

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

Có thể "cắt" một danh sách trong Python. Điều này sẽ trả về một phân đoạn cụ thể của một danh sách nhất định . Ví dụ: lệnh myList[2] sẽ trả về mục thứ 3 trong danh sách của bạn (hãy nhớ rằng Python bắt đầu đếm bằng số 0).

Chỉ mục lát trong Python 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.