HomeLập trìnhPythonHướng dẫn mảng...

Hướng dẫn mảng Python – Xác định, Chỉ mục, Phương thức


Trong bài viết này, bạn sẽ học cách sử dụng mảng trong Python. Bạn sẽ thấy cách xác định chúng và các phương pháp khác nhau thường được sử dụng để thực hiện các thao tác trên chúng.

Artcile bao gồm các mảng mà bạn tạo bằng cách nhập array module. Chúng tôi sẽ không đề cập đến các mảng NumPy ở đây.

Mục lục

  1. Giới thiệu về mảng
    1. Sự khác biệt giữa Danh sách và Mảng
    2. Khi nào sử dụng mảng
  2. Cách sử dụng mảng
    1. Xác định mảng
    2. Tìm độ dài của mảng
    3. Lập chỉ mục mảng
    4. Tìm kiếm thông qua các mảng
    5. Lặp qua các mảng
    6. Cắt một mảng
  3. Các phương thức mảng để thực hiện các hoạt động
    1. Thay đổi một giá trị hiện có
    2. Thêm một giá trị mới
    3. Xóa một giá trị
  4. Phần kết luận

Bắt đầu nào!

Mảng Python là gì?

Mảng là một cấu trúc dữ liệu cơ bản và là một phần quan trọng của hầu hết các ngôn ngữ lập trình. Trong Python, chúng là các thùng chứa có thể lưu trữ nhiều mục cùng một lúc.

Cụ thể, chúng là một tập hợp các phần tử được sắp xếp theo thứ tự với mọi giá trị thuộc cùng một kiểu dữ liệu. Đó là điều quan trọng nhất cần nhớ về mảng Python – thực tế là chúng chỉ có thể chứa một chuỗi nhiều mục cùng loại.

Sự khác biệt giữa Danh sách Python và Mảng Python là gì?

Danh sách là một trong những cấu trúc dữ liệu phổ biến nhất trong Python và là phần cốt lõi của ngôn ngữ.

Danh sách và mảng hoạt động tương tự nhau.

Cũng giống như mảng, danh sách là một dãy các phần tử được sắp xếp theo thứ tự.

Chúng cũng có thể thay đổi và không cố định về kích thước, nghĩa là chúng có thể phát triển và thu nhỏ trong suốt vòng đời của chương trình. Các mục có thể được thêm và xóa, làm cho chúng rất linh hoạt để làm việc.

Tuy nhiên, danh sách và mảng là không phải giống nhau cả thôi.

danh sách lưu trữ các mặt hàng của các loại dữ liệu khác nhau. Điều này có nghĩa là một danh sách có thể chứa đồng thời các số nguyên, số dấu phẩy động, chuỗi hoặc bất kỳ loại dữ liệu Python nào khác. Đó không phải là trường hợp với mảng.

Như đã đề cập ở phần trên, mảng chỉ lưu trữ các mặt hàng thuộc về cùng một kiểu dữ liệu. Có những mảng chỉ chứa số nguyên hoặc chỉ số dấu phẩy động hoặc chỉ bất kỳ loại dữ liệu Python nào khác mà bạn muốn sử dụng.

Khi nào nên sử dụng mảng Python

Danh sách được tích hợp vào ngôn ngữ lập trình Python, trong khi mảng thì không. Mảng không phải là cấu trúc dữ liệu tích hợp và do đó cần phải được nhập thông qua array module để được sử dụng.

Mảng của array module là một trình bao bọc mỏng trên các mảng C và rất hữu ích khi bạn muốn làm việc với dữ liệu đồng nhất.

Chúng cũng nhỏ gọn hơn và chiếm ít bộ nhớ cũng như không gian hơn, giúp chúng có kích thước hiệu quả hơn so với danh sách.

Nếu bạn muốn thực hiện các phép tính toán học, thì bạn nên sử dụng mảng NumPy bằng cách nhập gói NumPy. Bên cạnh đó, bạn chỉ nên sử dụng mảng Python khi thực sự cần, vì danh sách hoạt động theo cách tương tự và linh hoạt hơn khi làm việc.

Đọc thêm  Yêu cầu Python – Cách tương tác với Dịch vụ web bằng Python

Cách sử dụng mảng trong Python

Để tạo mảng Python, trước tiên bạn phải nhập array module trong đó có tất cả các chức năng cần thiết.

Có ba cách bạn có thể nhập array module:

  1. Bằng cách sử dụng import array ở đầu tệp. Điều này bao gồm mô-đun array. Sau đó, bạn sẽ tiếp tục tạo một mảng bằng cách sử dụng array.array().
import array

#how you would create an array
array.array()
  1. Thay vì phải gõ array.array() mọi lúc, bạn có thể sử dụng import array as arr ở đầu tệp, thay vì import array một mình. Sau đó, bạn sẽ tạo một mảng bằng cách gõ arr.array(). Các arr hoạt động như một tên bí danh, với hàm tạo mảng ngay sau nó.
import array as arr

#how you would create an array
arr.array()
  1. Cuối cùng, bạn cũng có thể sử dụng from array import *với * nhập tất cả các chức năng có sẵn. Sau đó, bạn sẽ tạo một mảng bằng cách viết array() nhà xây dựng một mình.
from array import *

#how you would create an array
array()

Cách xác định mảng trong Python

Khi bạn đã nhập array modulethì bạn có thể tiếp tục xác định một mảng Python.

Cú pháp chung để tạo một mảng như sau:

variable_name = array(typecode,[elements])

Hãy chia nhỏ nó ra:

  • variable_name sẽ là tên của mảng.
  • Các typecode chỉ định loại phần tử nào sẽ được lưu trữ trong mảng. Cho dù đó là một mảng các số nguyên, một mảng các số float hay một mảng của bất kỳ kiểu dữ liệu Python nào khác. Hãy nhớ rằng tất cả các phần tử phải có cùng kiểu dữ liệu.
  • Bên trong ngoặc vuông bạn đề cập đến elements sẽ được lưu trữ trong mảng, với mỗi phần tử được phân tách bằng dấu phẩy. Bạn cũng có thể tạo một trống rỗng mảng bằng cách chỉ viết variable_name = array(typecode) một mình, không có bất kỳ yếu tố nào.

Dưới đây là bảng mã kiểu, với các kiểu mã khác nhau có thể được sử dụng với các kiểu dữ liệu khác nhau khi xác định mảng Python:

đánh máy loại C Loại trăn Kích thước
‘b’ ký tự int 1
‘B’ ký tự không dấu int 1
‘bạn’ wchar_t Ký tự Unicode 2
‘h’ ký tắt int 2
‘H’ ngắn không dấu int 2
‘tôi’ ký int int 2
‘TÔI’ int không dấu int 2
‘tôi’ ký dài int 4
‘l’ không dấu dài int 4
‘q’ đã ký lâu dài int số 8
‘Q’ không dấu lâu dài int số 8
‘f’ trôi nổi trôi nổi 4
‘d’ gấp đôi trôi nổi số 8

Liên kết mọi thứ lại với nhau, đây là một ví dụ về cách bạn định nghĩa một mảng trong Python:

import array as arr 

numbers = arr.array('i',[10,20,30])


print(numbers)

#output

#array('i', [10, 20, 30])

Hãy chia nhỏ nó ra:

  • Đầu tiên, chúng tôi đưa vào mô-đun mảng, trong trường hợp này là với import array as arr .
  • Sau đó, chúng tôi đã tạo ra một numbers mảng.
  • Chúng tôi đã sử dụng arr.array() bởi vì import array as arr .
  • Bên trong array() nhà xây dựng, trước tiên chúng tôi bao gồm i, cho số nguyên đã ký. Số nguyên đã ký có nghĩa là mảng có thể bao gồm số dương giá trị âm. Số nguyên không dấu, với H chẳng hạn, có nghĩa là không cho phép giá trị âm nào.
  • Cuối cùng, chúng tôi đã bao gồm các giá trị sẽ được lưu trữ trong mảng trong dấu ngoặc vuông.

Hãy nhớ rằng nếu bạn đã cố gắng đưa vào các giá trị không thuộc về i typecode, nghĩa là chúng không phải là giá trị số nguyên, bạn sẽ gặp lỗi:

import array as arr 

numbers = arr.array('i',[10.0,20,30])


print(numbers)

#output

#Traceback (most recent call last):
# File "/Users/dionysialemonaki/python_articles/demo.py", line 14, in <module>
#   numbers = arr.array('i',[10.0,20,30])
#TypeError: 'float' object cannot be interpreted as an integer

Trong ví dụ trên, tôi đã cố gắng đưa một số dấu phẩy động vào mảng. Tôi gặp lỗi vì đây chỉ là một mảng số nguyên.

Một cách khác để tạo một mảng như sau:

from array import *

#an array of floating point values
numbers = array('d',[10.0,20.0,30.0])

print(numbers)

#output

#array('d', [10.0, 20.0, 30.0])

Ví dụ trên đã nhập array module qua from array import * và tạo ra một mảng numbers của kiểu dữ liệu float. Điều này có nghĩa là nó chỉ chứa các số dấu phẩy động, được chỉ định với 'd' mã đánh máy.

Cách tìm độ dài của một mảng trong Python

Để biết chính xác số lượng phần tử có trong một mảng, hãy sử dụng công cụ tích hợp sẵn len() phương pháp.

Đọc thêm  Các thư viện cần thiết cho Machine Learning trong Python

Nó sẽ trả về số nguyên bằng tổng số phần tử trong mảng mà bạn chỉ định.

import array as arr 

numbers = arr.array('i',[10,20,30])


print(len(numbers))

#output
# 3

Trong ví dụ trên, mảng chứa ba phần tử – 10, 20, 30 – vậy độ dài của numbers3.

Lập chỉ mục mảng và cách truy cập các mục riêng lẻ trong một mảng bằng Python

Mỗi mục trong một mảng có một địa chỉ cụ thể. Các mục riêng lẻ được truy cập bằng cách tham chiếu số chỉ mục.

Lập chỉ mục trong Python và trong tất cả các ngôn ngữ lập trình và điện toán nói chung, bắt đầu từ . Điều quan trọng cần nhớ là việc đếm bắt đầu từ không phải tại 1.

Để truy cập một phần tử, trước tiên bạn viết tên của mảng theo sau là dấu ngoặc vuông. Bên trong dấu ngoặc vuông, bạn bao gồm số chỉ mục của mục.

Cú pháp chung sẽ giống như thế này:

array_name[index_value_of_item]

Đây là cách bạn sẽ truy cập từng phần tử riêng lẻ trong một mảng:

import array as arr 

numbers = arr.array('i',[10,20,30])

print(numbers[0]) # gets the 1st element
print(numbers[1]) # gets the 2nd element
print(numbers[2]) # gets the 3rd element

#output

#10
#20
#30

Hãy nhớ rằng giá trị chỉ mục của phần tử cuối cùng của một mảng luôn nhỏ hơn một giá trị so với độ dài của mảng. Ở đâu n là độ dài của mảng, n - 1 sẽ là giá trị chỉ mục của mục cuối cùng.

Lưu ý rằng bạn cũng có thể truy cập từng phần tử riêng lẻ bằng cách sử dụng lập chỉ mục phủ định.

Với lập chỉ mục phủ định, phần tử cuối cùng sẽ có chỉ mục là -1phần tử thứ hai đến phần tử cuối cùng sẽ có chỉ số là -2và như thế.

Đây là cách bạn sẽ lấy từng mục trong một mảng bằng phương thức đó:

import array as arr 

numbers = arr.array('i',[10,20,30])

print(numbers[-1]) #gets last item
print(numbers[-2]) #gets second to last item
print(numbers[-3]) #gets first item
 
#output

#30
#20
#10

Cách tìm kiếm thông qua một mảng trong Python

Bạn có thể tìm ra số chỉ mục của một phần tử bằng cách sử dụng index() phương pháp.

Bạn chuyển giá trị của phần tử đang được tìm kiếm làm đối số cho phương thức và số chỉ mục của phần tử được trả về.

import array as arr 

numbers = arr.array('i',[10,20,30])

#search for the index of the value 10
print(numbers.index(10))

#output

#0

Nếu có nhiều hơn một phần tử có cùng giá trị, chỉ mục của phiên bản đầu tiên của giá trị sẽ được trả về:

import array as arr 


numbers = arr.array('i',[10,20,30,10,20,30])

#search for the index of the value 10
#will return the index number of the first instance of the value 10
print(numbers.index(10))

#output

#0

Cách lặp qua một mảng trong Python

Bạn đã biết cách truy cập từng phần tử riêng lẻ trong một mảng và tự in nó ra.

Bạn cũng đã thấy cách in mảng, sử dụng print() phương pháp. Phương pháp đó cho kết quả như sau:

import array as arr 

numbers = arr.array('i',[10,20,30])

print(numbers)

#output

#array('i', [10, 20, 30])

Nếu bạn muốn in từng giá trị một thì sao?

Đây là nơi một vòng lặp có ích. Bạn có thể lặp qua mảng và in ra từng giá trị, từng giá trị một, với mỗi lần lặp lại vòng lặp.

Đối với điều này, bạn có thể sử dụng một cách đơn giản for vòng:

import array as arr 

numbers = arr.array('i',[10,20,30])

for number in numbers:
    print(number)
    
#output
#10
#20
#30

Bạn cũng có thể sử dụng range() chức năng và vượt qua len() phương thức làm tham số của nó. Điều này sẽ cho kết quả tương tự như trên:

import array as arr  

values = arr.array('i',[10,20,30])

#prints each individual value in the array
for value in range(len(values)):
    print(values[value])

#output

#10
#20
#30

Cách cắt một mảng trong Python

Để truy cập một phạm vi giá trị cụ thể bên trong mảng, hãy sử dụng toán tử cắt, là dấu hai chấm :.

Khi sử dụng toán tử cắt và bạn chỉ bao gồm một giá trị, quá trình đếm bắt đầu từ theo mặc định. Nó lấy mục đầu tiên và tăng lên nhưng không bao gồm số chỉ mục bạn chỉ định.


import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

#get the values 10 and 20 only
print(numbers[:2])  #first to second position

#output

#array('i', [10, 20])

Khi bạn chuyển hai số làm đối số, bạn chỉ định một dãy số. Trong trường hợp này, quá trình đếm bắt đầu từ vị trí của số đầu tiên trong phạm vi và tối đa nhưng không bao gồm số thứ hai:

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])


#get the values 20 and 30 only
print(numbers[1:3]) #second to third position

#output

#rray('i', [20, 30])

Phương pháp thực hiện các thao tác trên mảng trong Python

Mảng có thể thay đổi, có nghĩa là chúng có thể thay đổi được. Bạn có thể thay đổi giá trị của các mục khác nhau, thêm mục mới hoặc xóa bất kỳ mục nào bạn không muốn trong chương trình của mình nữa.

Đọc thêm  Định nghĩa lớp động trong Python

Hãy xem một số phương thức được sử dụng phổ biến nhất để thực hiện các thao tác trên mảng.

Cách thay đổi giá trị của một mục trong một mảng

Bạn có thể thay đổi giá trị của một phần tử cụ thể bằng cách chỉ định vị trí của nó và gán cho nó một giá trị mới:

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

#change the first element
#change it from having a value of 10 to having a value of 40
numbers[0] = 40

print(numbers)

#output

#array('i', [40, 20, 30])

Cách thêm một giá trị mới vào một mảng

Để thêm một giá trị duy nhất vào cuối một mảng, hãy sử dụng append() phương pháp:

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

#add the integer 40 to the end of numbers
numbers.append(40)

print(numbers)

#output

#array('i', [10, 20, 30, 40])

Xin lưu ý rằng mục mới mà bạn thêm cần phải có cùng kiểu dữ liệu với các mục còn lại trong mảng.

Hãy xem điều gì sẽ xảy ra khi tôi cố gắng thêm một số float vào một mảng số nguyên:

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

#add the integer 40 to the end of numbers
numbers.append(40.0)

print(numbers)

#output

#Traceback (most recent call last):
#  File "/Users/dionysialemonaki/python_articles/demo.py", line 19, in <module>
#   numbers.append(40.0)
#TypeError: 'float' object cannot be interpreted as an integer

Nhưng nếu bạn muốn thêm nhiều hơn một giá trị vào cuối một mảng thì sao?

Sử dụng extend() phương thức này nhận một đối số có thể lặp lại (chẳng hạn như danh sách các mục). Một lần nữa, đảm bảo rằng các mục mới đều có cùng kiểu dữ liệu.

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

#add the integers 40,50,60 to the end of numbers
#The numbers need to be enclosed in square brackets

numbers.extend([40,50,60])

print(numbers)

#output

#array('i', [10, 20, 30, 40, 50, 60])

Và nếu bạn không muốn thêm một mục vào cuối mảng thì sao? Sử dụng insert() phương pháp, để thêm một mục tại một vị trí cụ thể.

Các insert() hàm nhận hai đối số: số chỉ mục của vị trí mà phần tử mới sẽ được chèn vào và giá trị của phần tử mới.

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

#add the integer 40 in the first position
#remember indexing starts at 0

numbers.insert(0,40)

print(numbers)

#output

#array('i', [40, 10, 20, 30])

Cách xóa một giá trị khỏi một mảng

Để loại bỏ một phần tử khỏi một mảng, sử dụng remove() phương thức và bao gồm giá trị làm đối số cho phương thức.

import array as arr 

#original array
numbers = arr.array('i',[10,20,30])

numbers.remove(10)

print(numbers)

#output

#array('i', [20, 30])

Với remove()chỉ phiên bản đầu tiên của giá trị bạn chuyển làm đối số sẽ bị xóa.

Xem điều gì sẽ xảy ra khi có nhiều hơn một giá trị giống hệt nhau:


import array as arr 

#original array
numbers = arr.array('i',[10,20,30,10,20])

numbers.remove(10)

print(numbers)

#output

#array('i', [20, 30, 10, 20])

Chỉ lần xuất hiện đầu tiên của 10 bị xóa.

Bạn cũng có thể sử dụng pop() phương thức và chỉ định vị trí của phần tử sẽ bị xóa:

import array as arr 

#original array
numbers = arr.array('i',[10,20,30,10,20])

#remove the first instance of 10
numbers.pop(0)

print(numbers)

#output

#array('i', [20, 30, 10, 20])

Phần kết luận

Và bạn đã có nó – bây giờ bạn đã biết những điều cơ bản về cách tạo mảng trong Python bằng cách sử dụng array module. Hy vọng rằng bạn tìm thấy hướng dẫn này hữu ích.

Để tìm hiểu thêm về Python, hãy xem Chứng chỉ về Máy tính Khoa học với Python của freeCodeCamp.

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học.

Cảm ơn đã đọc và mã hóa hạnh phúc!

Tài liệu tham khảo: Tài liệu Python



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status