Cắt một mảng là khái niệm cắt ra – hoặc cắt ra – một phần của mảng. Làm thế nào để bạn làm điều này trong Python?
Nếu bạn thích xem nội dung video để bổ sung cho việc đọc của mình, thì đây cũng là phiên bản video của bài viết này
Mảng là gì?
Mảng là một cấu trúc dữ liệu cho phép bạn lưu trữ nhiều mục có cùng kiểu dữ liệu theo thứ tự trong một biến cùng một lúc. Bạn có thể truy cập từng mục này theo chỉ mục của chúng [vị trí theo thứ tự]
Chúng hơi giống với danh sách trong Python, chỉ là danh sách cho phép bạn lưu trữ nhiều mục thuộc các loại dữ liệu khác nhau. Ngoài ra, trong khi danh sách được tích hợp sẵn, thì mảng không
Cách truy cập các giá trị trong một mảng bằng Python
Đây là cú pháp để tạo một mảng trong Python
import array as arr
numbers = arr.array[typecode, [values]]
Vì kiểu dữ liệu mảng không được tích hợp sẵn trong Python theo mặc định, bạn phải nhập nó từ mô-đun
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
2. Chúng tôi nhập mô-đun này dưới dạng import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
3Sử dụng phương thức
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
2 của import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
3, chúng ta có thể tạo một mảng bằng cách chỉ định một import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
6 [kiểu dữ liệu của các giá trị] và các giá trị được lưu trữ trong mảngĐây là bảng hiển thị các loại mã được chấp nhận
TypecodeC TypePython TypeBytes Size'b'signed charint1'B'unsigned charint1'u'wchar_tUnicode character2'h'signed shortint2'H'unsigned shortint2'i'signed intint2'I'unsigned intint2'l'signed longint4'L'unsigned longint4'Mã đánh máy nhận được từ tài liệu Python
Đây là một mảng ví dụ trong Python
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
Chúng tôi đã tạo một mảng các giá trị nguyên từ 1 đến 5 tại đây. Chúng tôi cũng đã truy cập giá trị thứ hai bằng cách sử dụng dấu ngoặc vuông và chỉ mục của nó theo thứ tự là 1
Cách cắt một mảng trong Python
Giả sử bạn muốn cắt một phần của mảng này và gán phần đó cho một biến khác. Bạn có thể làm điều đó bằng cách sử dụng dấu hai chấm và dấu ngoặc vuông. Cú pháp trông như thế này
array[start:stop:step]
Chỉ mục
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
7 chỉ định chỉ mục mà việc cắt lát bắt đầu từ. Mặc định là 0Chỉ mục
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
8 chỉ định chỉ mục nơi quá trình cắt kết thúc [nhưng không bao gồm giá trị tại chỉ mục này]. Mặc định là độ dài của mảngĐối số
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
9 chỉ định bước cắt. Mặc định là 1Hãy xem một số ví dụ bao gồm các cách khác nhau trong đó các mảng có thể được cắt
Cách cắt mà không có chỉ mục bắt đầu hoặc kết thúc
Khi bạn cắt mà không có chỉ số
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
7 hoặc import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
8, về cơ bản bạn sẽ nhận được toàn bộ bản sao của mảngimport array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
Như bạn có thể thấy ở đây, chúng ta có một bản sao của mảng
array[start:stop:step]
2Cũng cần lưu ý rằng hành động cắt không ảnh hưởng đến mảng ban đầu. Với việc cắt, bạn chỉ "sao chép một phần" của mảng ban đầu
Cách cắt với chỉ mục bắt đầu
Ví dụ: nếu bạn muốn cắt một mảng từ một giá trị bắt đầu cụ thể đến cuối mảng, đây là cách thực hiện
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
Bằng cách chuyển
array[start:stop:step]
3 trong dấu ngoặc vuông, quá trình cắt bắt đầu từ chỉ mục 2 [giữ giá trị 3] cho đến hết mảng, như bạn có thể thấy trong kết quảCách cắt với chỉ số kết thúc
Ví dụ: nếu bạn muốn cắt một mảng từ giá trị đầu tiên sang giá trị thứ ba, đây là cách thực hiện
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:3]
print[copy]
# array['i', [1, 2, 3]]
Bằng cách chuyển
array[start:stop:step]
4 trong dấu ngoặc vuông, việc cắt bắt đầu từ chỉ mục 0 [theo mặc định, vì không được chỉ định] cho đến chỉ mục thứ ba mà chúng tôi đã chỉ địnhNhư đã đề cập trước đó, việc cắt loại trừ giá trị ở chỉ mục thứ ba. Vì vậy, trong các kết quả, như bạn tìm thấy trong biến
array[start:stop:step]
5, các giá trị được trả về là từ chỉ số 0 đến chỉ số 2Cách cắt với chỉ mục bắt đầu và kết thúc
Nếu bạn muốn chỉ định điểm bắt đầu và điểm kết thúc của việc cắt lát thì sao?
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[1:4]
print[copy]
# array['i', [2, 3, 4]]
Bằng cách sử dụng một số, sau đó là dấu hai chấm, theo sau là một số trong dấu ngoặc vuông, bạn có thể chỉ định chỉ mục bắt đầu và chỉ mục kết thúc tương ứng
Trong trường hợp của chúng tôi, chúng tôi đã sử dụng 1 và 4 như trong
array[start:stop:step]
6. Từ kết quả, bạn thấy rằng việc cắt lát bắt đầu từ giá trị tại chỉ mục 1 là array[start:stop:step]
7, cho đến giá trị trước chỉ mục 4, là array[start:stop:step]
8 [tại chỉ mục 3]Làm thế nào để cắt với các bước
Khi bạn chỉ định chỉ mục
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
7 và import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
8 lần lượt là 1 và 5, việc cắt lát sẽ chọn các giá trị tại chỉ mục 1, chỉ mục 2 [1 bước tăng so với chỉ mục trước], chỉ mục 3 [1 bước tăng so với chỉ mục trước đó] và chỉ mục 4 [và một Trong lần cắt này, bước 1 được sử dụng theo mặc định. Nhưng bạn có thể cung cấp một bước khác. Đây là cách
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[1:4:2]
print[copy]
# array['i', [2, 4]]
Bằng cách thêm một dấu hai chấm khác, bạn có thể chỉ định một bước. Vì vậy, chúng tôi có
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
1Trong ví dụ của chúng tôi, bắt đầu là 1, kết thúc là 4 và bước là 2. Cắt lát bắt đầu từ giá trị tại chỉ mục 1 là 2, sau đó giá trị tiếp theo sẽ là chỉ mục trước đó cộng với bước, là
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
2 bằng 3. Giá trị tại chỉ mục 3 là 4 để được thêm vào lát cắt. Chỉ số tiếp theo sẽ là 5 [import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
3] nhưng vì 5 vượt quá chỉ số dừng nên nó sẽ không được thêm vào lát cắtNhư bạn có thể thấy trong mã, bản sao được cắt chỉ là 2 và 4
Cách cắt lát với chỉ số bắt đầu và kết thúc âm
Các chỉ số
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
7 hoặc import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
5 cũng có thể âm. Các chỉ mục phủ định được tính từ cuối mảng. Điều này có nghĩa là chỉ số âm là giá trị cuối cùng trong một mảngimport array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[-1]]
# 5
Bằng cách sử dụng âm 1 ở đây, bạn sẽ thấy rằng 5 được trả về, là từ phần cuối của một mảng
Với biểu thức lát cắt như
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
6, điều này có nghĩa là chỉ số bắt đầu là -3 và chỉ số kết thúc là -1. Hãy xem cách nó hoạt động với mảng của chúng taimport array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[-3:-1]
print[copy]
# array['i', [3, 4]]
Slice bắt đầu từ chỉ số -3 [là giá trị thứ ba tính từ cuối mảng, tức là 3] và dừng ở chỉ mục -1 [là giá trị cuối cùng trong mảng, tức là 5]. Cắt lát không bao gồm giá trị cuối cùng nên chúng tôi có 3 và 4
Kết hợp chỉ số
7 tiêu cực và chỉ sốimport array as arr numbers = arr.array['i', [1, 2, 3, 4, 5]] print[numbers[1]] # 2
8 tích cực [hoặc ngược lại] sẽ không hiệu quả vì bạn sẽ đi theo các hướng khác nhau cùng một lúcimport array as arr numbers = arr.array['i', [1, 2, 3, 4, 5]] print[numbers[1]] # 2
Làm thế nào để cắt với các bước tiêu cực
Bạn có thể sử dụng các bước âm, có nghĩa là các bước giảm dần để cắt lát. Đây là một ví dụ
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
0Ở đây, chúng tôi chỉ định bắt đầu chỉ mục 2, không có kết thúc và bước -1. Cắt ở đây sẽ bắt đầu từ chỉ số 2 là 3. Các bước phủ định có nghĩa là giá trị tiếp theo trong lát cắt sẽ có chỉ số nhỏ hơn chỉ mục trước đó 1. Điều này có nghĩa là
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[:]
print[copy]
# array['i', [1, 2, 3, 4, 5]]
9 là 1 nên giá trị tại chỉ mục này là 2 sẽ được thêm vào lát cắtĐiều này tiếp tục đảo ngược cho đến khi nó đi đến cuối mảng có chỉ số 0. Mảng được cắt lát dẫn đến các giá trị 3, 2 và 1
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
0 có nghĩa là gì?
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
Bạn đã từng thấy biểu thức này ở đâu trong Python trước đây chưa? . không có chỉ số
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
7 được chỉ định, cũng như chỉ số import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
8, chỉ có một bước âm là -1Chỉ mục
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
7 mặc định là 0, vì vậy bằng cách sử dụng bước -1, phần cắt sẽ chứa các giá trị tại các chỉ mục sau. -1 [import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
4], -2 [import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
5], -3 [import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
6], -4 [import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
7] và -5 [import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
copy = numbers[2:]
print[copy]
# array['i', [3, 4, 5]]
8]. Khá nhiều bản sao đảo ngược của mảngĐây là mã cho nó
import array as arr
numbers = arr.array['i', [1, 2, 3, 4, 5]]
print[numbers[1]]
# 2
1Như bạn có thể thấy, đây là một cách đơn giản để đảo ngược một mảng
kết thúc
Trong bài viết này, chúng ta đã xem xét ngắn gọn cách khai báo mảng trong Python, cách truy cập các giá trị trong một mảng và cả cách cắt – hoặc cắt – một phần của mảng bằng cách sử dụng dấu hai chấm và dấu ngoặc vuông.
Chúng tôi cũng đã học cách cắt lát hoạt động với các bước và chỉ số bắt đầu và dừng tích cực/tiêu cực
Bạn có thể tìm hiểu thêm về mảng tại đây. Hướng dẫn mảng Python – Xác định, Chỉ mục, Phương thức
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Người ủng hộ nhà phát triển và Người sáng tạo nội dung đam mê chia sẻ kiến thức của tôi về Công nghệ. Tôi đơn giản hóa JavaScript / ReactJS / NodeJS / Frameworks / TypeScript / v.v. Kênh YT của tôi. youtube. com/c/deeecode
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu