Làm thế nào để bạn gọi một phần tử từ một mảng trong python?

Hướng dẫn toàn diện về Mảng Python này giải thích Mảng trong Python là gì, cú pháp của nó và cách thực hiện các thao tác khác nhau như sắp xếp, duyệt qua, xóa, v.v.

Hãy xem xét một cái xô có chứa các vật dụng tương tự trong đó, chẳng hạn như bàn chải hoặc giày, v.v. Điều tương tự cũng xảy ra với một mảng. Mảng là một thùng chứa có thể chứa một tập hợp dữ liệu cùng loại

Do đó, tất cả các phần tử trong một mảng phải là tất cả các số nguyên hoặc tất cả các số float, v.v. Điều này giúp dễ dàng tính toán vị trí của từng phần tử hoặc để thực hiện một thao tác chung được hỗ trợ bởi tất cả các mục nhập

Mảng chủ yếu được sử dụng khi chúng ta muốn lưu trữ dữ liệu thuộc một loại cụ thể hoặc khi chúng ta muốn hạn chế loại dữ liệu của bộ sưu tập của mình

=> Truy cập vào đây để học Python từ đầu

Bạn sẽ học được gì

  • Mảng Python
    • Cú pháp mảng
    • Mô-đun mảng tích hợp Python
    • Mã loại mảng
    • Các thao tác cơ bản của mảng
    • #1) Di chuyển qua một mảng
      • Mảng lập chỉ mục
      • Mảng cắt lát
      • Mảng lặp
    • #2) Chèn vào một mảng
      • Sử dụng phương thức chèn ()
      • Sử dụng phương thức append()
      • Sử dụng và cắt lát
      • Sử dụng phương thức mở rộng()
      • Sử dụng phương thức fromlist()
    • Sửa đổi hoặc cập nhật một phần tử mảng trong một chỉ mục
    • Xóa một phần tử khỏi một mảng
      • xóa(x)
      • Bốp( [ tôi ] )
    • Tìm kiếm một mảng
    • Các phương thức và thuộc tính mảng khác
      • #1) Mảng. đếm()
      • #2) Mảng. đảo ngược()
      • #3) Mảng. kích thước mục
  • Các câu hỏi thường gặp
  • Sự kết luận
    • đề xuất đọc

Mảng Python

Mảng được xử lý bởi mảng mô-đun kiểu đối tượng Python. Mảng hoạt động giống như danh sách ngoại trừ thực tế là các đối tượng mà chúng chứa bị hạn chế bởi kiểu của chúng và quan trọng nhất là chúng nhanh hơn và sử dụng ít không gian bộ nhớ hơn

Làm thế nào để bạn gọi một phần tử từ một mảng trong python?

Trong hướng dẫn này, chúng ta sẽ nghiên cứu mảng Python theo các chủ đề sau

  • Cú pháp mảng
  • Mô-đun mảng tích hợp Python
    • Mã kiểu mảng
    • Các thao tác cơ bản của mảng. Duyệt, Chèn, Xóa, Tìm kiếm, Cập nhật
    • Các phương thức mảng khác

Cú pháp mảng

Một mảng có thể được chẩn đoán như vậy

  1. yếu tố. Các mục được lưu trữ trong mảng
  2. Mục lục. Đại diện cho vị trí mà một phần tử được lưu trữ trong một mảng
  3. Chiều dài. Là kích thước của mảng hoặc số lượng chỉ mục mà mảng sở hữu
  4. chỉ số. Là bản đồ chỉ mục của giá trị mảng được lưu trữ trong đối tượng
Làm thế nào để bạn gọi một phần tử từ một mảng trong python?
Biểu diễn mảng

Hình trên hiển thị một mảng có độ dài là 6 và các phần tử của mảng là [5, 6, 7, 2, 3, 5]. Chỉ số của mảng luôn bắt đầu bằng 0 (dựa trên 0) cho phần tử đầu tiên, sau đó là 1 cho phần tử tiếp theo, v.v. Chúng được sử dụng để truy cập các phần tử trong một mảng

Như chúng ta đã nhận thấy, chúng ta có thể coi mảng là Danh sách nhưng không thể hạn chế kiểu dữ liệu trong danh sách như được thực hiện trong mảng. Điều này sẽ được hiểu nhiều hơn trong phần tiếp theo

Mô-đun mảng tích hợp Python

Có nhiều mô-đun tích hợp khác trong Python mà bạn có thể đọc thêm tại đây. Mô-đun là một tệp Python chứa các định nghĩa và câu lệnh hoặc hàm Python. Các câu lệnh này được sử dụng bằng cách gọi chúng từ mô-đun khi mô-đun được nhập vào một tệp Python khác. Mô-đun được sử dụng cho mảng được gọi là mảng

Mô-đun mảng trong Python định nghĩa một đối tượng được biểu diễn trong một mảng. Đối tượng này chứa các kiểu dữ liệu cơ bản như số nguyên, dấu chấm động, ký tự. Sử dụng mô-đun mảng, một mảng có thể được khởi tạo bằng cú pháp sau

cú pháp

arrayName = array.array(dataType, [array items])

Hãy hiểu các bộ phận khác nhau của nó với sơ đồ được dán nhãn bên dưới

Làm thế nào để bạn gọi một phần tử từ một mảng trong python?
Cú pháp mảng

ví dụ 1. In một mảng các giá trị với mã loại, int

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])

Ví dụ trên được giải thích bên dưới;

  1. Tên arrayName cũng giống như đặt tên cho bất kỳ biến nào khác. Nó có thể là bất cứ thứ gì tuân theo các chuyển đổi đặt tên Python, trong trường hợp này là myarray
  2. Mảng đầu tiên trong mảng. mảng là tên mô-đun định nghĩa lớp array(). Nó phải được nhập khẩu trước khi sử dụng. Dòng mã đầu tiên thực hiện điều đó
  3. Mảng thứ hai trong mảng. mảng là lớp được gọi từ mô-đun mảng khởi tạo mảng. Phương thức này nhận hai tham số
  4. Tham số đầu tiên là dataType chỉ định kiểu dữ liệu được sử dụng bởi mảng. Trong ví dụ 1, chúng tôi đã sử dụng kiểu dữ liệu 'i' viết tắt của từ int đã ký
  5. Tham số thứ hai được sử dụng bởi phương thức mảng chỉ định các phần tử của mảng được cung cấp dưới dạng có thể lặp lại như danh sách, bộ dữ liệu. Trong ví dụ 1, một danh sách các số nguyên đã được cung cấp

Mã loại mảng

Mã kiểu mảng là kiểu dữ liệu (dataType) phải là tham số đầu tiên của phương thức mảng. Điều này xác định mã dữ liệu ràng buộc các phần tử trong mảng. Chúng được thể hiện trong bảng dưới đây

Bảng 1. Mã loại mảng

Loại CodePython typeC TypeKích thước tối thiểu tính bằng byte'b'intSigned char1'B'intUnsigned char1'u'Unicode characterwchar_t2'h'IntSigned short2'H'intUnsigned short2'i'intSigned int2'I'intUnsigned int3'l'intsigned long4'L'

Mô-đun mảng xác định một thuộc tính được gọi là. typecodes trả về một chuỗi chứa tất cả các mã loại được hỗ trợ có trong Bảng 1. Trong khi phương thức mảng xác định thuộc tính mã kiểu trả về ký tự mã kiểu được sử dụng để tạo mảng

Ví dụ 2. Nhận tất cả các mã loại được hỗ trợ của mảng và mã loại được sử dụng để xác định một mảng.

>>> import array
>>> array.typecodes # get all type codes.
'bBuhHiIlLqQfd'
>>> a = array.array('i',[8,9,3,4]) # initialising array a
>>> b = array.array('d', [2.3,3.5,6.2]) #initialising array b
>>> a.typecode #getting the type Code, 'i', signed int.
'i'
>>> b.typecode #getting the type Code, 'd', double float
'd'

Các thao tác cơ bản của mảng

Trong các phần trên, chúng ta đã thấy cách tạo một mảng. Trong phần này, chúng ta sẽ kiểm tra một vài thao tác có thể được thực hiện trên đối tượng của nó. Tóm lại, các thao tác này là Traverse, Insertion, Delete, Search, Update

#1) Di chuyển qua một mảng

Cũng giống như danh sách, chúng ta có thể truy cập các phần tử của mảng bằng cách lập chỉ mục, cắt và lặp

Mảng lập chỉ mục

Một phần tử mảng có thể được truy cập bằng cách lập chỉ mục, tương tự như một danh sách. e. bằng cách sử dụng vị trí lưu trữ phần tử đó trong mảng. Chỉ số được đặt trong dấu ngoặc vuông [ ], phần tử đầu tiên ở chỉ số 0, tiếp theo ở chỉ số 1, v.v.

N. B. Chỉ số mảng phải là số nguyên

Ví dụ 3. Truy cập các phần tử của mảng bằng cách lập chỉ mục.

>>> from array import array # import array class from array module
>>> a = array('i', [4,5,6,7]) # create an array of signed int.
>>> a[0] # access at index 0, first element
4
>>> a[3] # access at index 3, 4th element
7
>>> a[-1] # access at index -1, last element, same as a[len(a)-1]
7
>>> a[9] # access at index 9, out of range
Traceback (most recent call last):
  File "", line 1, in 
IndexError: array index out of range

Lập chỉ mục phủ định bắt đầu đếm ngược i. e. chỉ số -1 sẽ trả về mục cuối cùng trong mảng

Làm thế nào để bạn gọi một phần tử từ một mảng trong python?
Đại diện cho lập chỉ mục mảng âm

Ngoài ra, giống như một danh sách, việc cung cấp một chỉ mục không tồn tại sẽ trả về một ngoại lệ IndexError cho biết nỗ lực nằm ngoài phạm vi

Mảng cắt lát

Cũng giống như danh sách, chúng ta có thể truy cập các phần tử của mảng bằng cách sử dụng toán tử cắt [bắt đầu. dừng lại. sải bước]

Để biết thêm về cách cắt và cách nó áp dụng cho chuỗi, hãy xem hướng dẫn Phương thức và toán tử chuỗi Python

Ví dụ 4. Truy cập các phần tử của mảng bằng cách cắt.

>>> from array import array # import array class from array module
>>> a = array('f', [4,3,6,33,2,8,0]) # create array of floats
>>> a
array('f', [4.0, 3.0, 6.0, 33.0, 2.0, 8.0, 0.0])
>>> a[0:4] # slice from index 0 to index 3
array('f', [4.0, 3.0, 6.0, 33.0])
>>> a[2:4] # slice from index 2 to index 3
array('f', [6.0, 33.0])
>>> a[::2] # slice from start to end while skipping every second element
array('f', [4.0, 6.0, 2.0, 0.0])
>>> a[::-1] # slice from start to end in reverse order
array('f', [0.0, 8.0, 2.0, 33.0, 6.0, 3.0, 4.0])

Mảng lặp

Vòng lặp một mảng được thực hiện bằng vòng lặp for. Điều này có thể được kết hợp với việc cắt lát như chúng ta đã thấy trước đó hoặc với các phương thức tích hợp như enumerate()

Ví dụ 5. Truy cập các phần tử của mảng bằng cách lặp.

from array import array # import array class from array module
# define array of floats
a = array('f', [4,3,6,33,2,8,0])

# Normal looping
print("Normal looping")
for i in a:
    print(i)

# Loop with slicing
print("Loop with slicing")
for i in a[3:]:
    print(i)

# Loop with method enumerate()
print("loop with method enumerate() and slicing")
for i in enumerate(a[1::2]):
    print(i)

đầu ra

Làm thế nào để bạn gọi một phần tử từ một mảng trong python?

#2) Chèn vào một mảng

Chèn vào một mảng có thể được thực hiện theo nhiều cách

Những cách phổ biến nhất là

Sử dụng phương thức chèn ()

Điều tương tự cũng xảy ra với Danh sách - một mảng sử dụng phương thức chèn(i, x) của nó để thêm một vào nhiều phần tử trong một mảng tại một chỉ mục cụ thể

Hàm chèn nhận 2 tham số

  • i. Vị trí mà bạn muốn thêm vào mảng. Như đã đề cập trước đó, chỉ số âm sẽ bắt đầu được tính từ cuối mảng
  • x. Yếu tố bạn muốn thêm

NB. Việc thêm một phần tử vào một vị trí hoặc chỉ mục đã chiếm, sẽ dịch chuyển tất cả các phần tử bắt đầu từ chỉ mục đó sang phải, sau đó chèn phần tử mới vào chỉ mục đó

Làm thế nào để bạn gọi một phần tử từ một mảng trong python?
Chèn một phần tử vào một mảng

Ví dụ 6. Thêm vào mảng bằng phương thức insert().

>>> from array import array # importing array from array module
>>> a= array('i',[4,5,6,7]) # initialising array
>>> a.insert(1,2) # inserting element: 2 at index: 1
>>> a  # Printing array a
array('i', [4, 2, 5, 6, 7])
>>> a.insert(-1,0) # insert element: 0 at index: -1
>>> a
array('i', [4, 2, 5, 6, 0, 7])
>>> len(a) # check array size
6
>>> a.insert(8, -1) # insert element: 0 at index: 8, this is out of range
>>> a
array('i', [4, 2, 5, 6, 0, 7, -1])

NB. Nếu chỉ mục nằm ngoài phạm vi, thì điều này sẽ không đưa ra một ngoại lệ. Thay vào đó, phần tử mới sẽ được thêm vào cuối mảng mà không gây ra sự dịch chuyển sang phải như đã thấy trước đây. Kiểm tra lần chèn cuối cùng trong Ví dụ 6 ở trên

Sử dụng phương thức append()

Phương thức này cũng có thể được sử dụng để thêm một phần tử vào một mảng nhưng phần tử này sẽ được thêm vào cuối mảng mà không dịch chuyển sang phải. Nó giống như ví dụ 6 khi chúng ta sử dụng phương thức insert() với chỉ mục nằm ngoài phạm vi

Ví dụ 7. Thêm vào mảng bằng phương thức append().

>>> from array import array
>>> a= array('i',[4,5,6,7]) # initialising array 
>>> a.append(2) # appending 2 at last index
>>> a 
array('i', [4, 5, 6, 7, 2])

Sử dụng và cắt lát

Như chúng ta sẽ thấy bên dưới, cắt lát thường được sử dụng để cập nhật một mảng. Tuy nhiên, dựa trên các chỉ mục được cung cấp cho việc cắt lát, việc chèn có thể diễn ra thay thế

Lưu ý rằng, với việc cắt lát, chúng ta phải thêm một mảng khác

Ví dụ 8. Thêm vào mảng bằng cách cắt.

________số 8

Từ ví dụ trên, chúng ta nên lưu ý một số điều sau

  • Để thực hiện thao tác chèn, thao tác cắt phải bắt đầu tại một chỉ mục nằm ngoài phạm vi. Không quan trọng nó là chỉ số gì
  • Phần tử mới được thêm vào phải đến từ một mảng khác

Sử dụng phương thức mở rộng()

Phương thức này nối thêm các mục từ iterable vào cuối mảng. Nó có thể là bất kỳ lần lặp nào miễn là các phần tử của nó cùng loại với mảng mà chúng ta sẽ thêm vào

Ví dụ 9. Thêm vào một mảng bằng cách sử dụng hàm mở rộng()

>>> from array import array
>>> a = array('i',[2,5])
>>> a.extend([0,0]) #extend with a list
>>> a
array('i', [2, 5, 0, 0])
>>> a.extend((-1,-1)) # extend with a tuple
>>> a
array('i', [2, 5, 0, 0, -1, -1])
>>> a.extend(array('i',[-2,-2])) # extend with an array
>>> a
array('i', [2, 5, 0, 0, -1, -1, -2, -2])

Sử dụng phương thức fromlist()

Phương pháp này nối các mục từ danh sách vào cuối mảng. Nó tương đương với một. gia hạn([x1,x2,. ]) và cả cho x trong danh sách. một. nối thêm(x)

Lưu ý rằng để điều này hoạt động, tất cả các mục trong danh sách phải có cùng mã loại với mảng

Ví dụ 10. Thêm vào một mảng bằng fromlist()

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
0

Sửa đổi hoặc cập nhật một phần tử mảng trong một chỉ mục

Chúng ta có thể cập nhật phần tử của mảng bằng cách sử dụng lập chỉ mục. Lập chỉ mục cho phép chúng ta sửa đổi một phần tử và không giống như thao tác chèn (), nó sẽ tạo ra một ngoại lệ IndexError nếu chỉ mục nằm ngoài phạm vi

Ví dụ 11. Sửa đổi phần tử của mảng tại một chỉ mục cụ thể.

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
1

Xóa một phần tử khỏi một mảng

Chúng ta có hai phương thức mảng có thể được sử dụng để xóa phần tử khỏi mảng. Các phương thức này là remove() và pop()

xóa(x)

Phương thức này loại bỏ sự xuất hiện đầu tiên của một phần tử, x, trong một mảng nhưng trả về một ngoại lệ ValueError nếu phần tử đó không tồn tại. Sau khi phần tử bị xóa, hàm sắp xếp lại mảng

Ví dụ 12. Xóa phần tử bằng phương thức remove()

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
2

Bốp( [ tôi ] )

Mặt khác, phương thức này xóa một phần tử khỏi một mảng bằng cách sử dụng chỉ mục của nó, i và trả về phần tử được bật ra từ mảng. Nếu không có chỉ mục nào được cung cấp, pop() sẽ xóa phần tử cuối cùng trong một mảng

Ví dụ 13. Xóa phần tử bằng phương thức pop()

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
3

N. B. Sự khác biệt giữa pop() và remove() là cái trước loại bỏ và trả về một phần tử tại một chỉ mục trong khi cái sau loại bỏ lần xuất hiện đầu tiên của một phần tử

Tìm kiếm một mảng

Mảng cho phép chúng ta tìm kiếm các phần tử của nó. Nó cung cấp một phương thức có tên là index(x). Phương thức này nhận vào một phần tử, x và trả về chỉ số của lần xuất hiện đầu tiên của phần tử

Ví dụ 14. Tìm chỉ số của phần tử trong mảng bằng chỉ số ()

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
4

Từ ví dụ trên, chúng tôi nhận thấy rằng việc tìm kiếm một phần tử không tồn tại trong mảng sẽ tạo ra một ngoại lệ ValueError. Do đó, thao tác này thường được gọi trong trình xử lý ngoại lệ try-except

Ví dụ 15. Sử dụng khối try-ngoại trừ để xử lý ngoại lệ trong chỉ mục()

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
5

Các phương thức và thuộc tính mảng khác

Lớp Array có nhiều phương thức và thuộc tính giúp chúng ta thao tác và lấy thêm thông tin về các phần tử của nó. Trong phần này, chúng ta sẽ xem xét các phương pháp thường được sử dụng

#1) Mảng. đếm()

Phương thức này lấy một phần tử làm đối số và đếm số lần xuất hiện của một phần tử trong mảng

Ví dụ 16. Đếm số lần xuất hiện của một phần tử trong mảng.

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
6

#2) Mảng. đảo ngược()

Phương thức này đảo ngược thứ tự các phần tử trong mảng ở chỗ. Thao tác này sửa đổi mảng vì trong Python, một mảng có thể thay đổi được. e. có thể được thay đổi sau khi tạo

Ví dụ 17.  Đảo ngược thứ tự các mục trong một mảng.

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
7

#3) Mảng. kích thước mục

Thuộc tính của mảng này trả về độ dài tính bằng byte của một phần tử mảng trong biểu diễn bên trong của mảng

Ví dụ 18

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
8

Vì điều này chỉ trả về độ dài tính bằng byte của một mục mảng, để có được kích thước của bộ nhớ đệm theo byte, chúng ta có thể tính toán nó giống như dòng cuối cùng của đoạn mã trên

Các câu hỏi thường gặp

Q #1) Làm thế nào để khai báo một mảng trong Python?

Câu trả lời. Có 2 cách để bạn có thể khai báo một mảng với mảng. array() từ mô-đun mảng tích hợp hoặc với numpy. mảng () từ mô-đun numpy

Với mảng. array(), bạn chỉ cần nhập mô-đun mảng và sau đó khai báo mảng sau đó với mã loại được chỉ định, trong khi với numpy. array() bạn sẽ cần cài đặt mô-đun numpy

Câu hỏi số 2) Sự khác biệt giữa Mảng và Danh sách trong Python là gì?

Câu trả lời. Sự khác biệt chính giữa Mảng và Danh sách trong Python là cái trước chỉ bao gồm các phần tử cùng loại trong khi cái sau có thể bao gồm các phần tử thuộc các loại khác nhau

Q #3) Làm cách nào để thêm các phần tử vào một mảng trong Python?

Câu trả lời. Các phần tử có thể được thêm vào một mảng theo nhiều cách. Cách phổ biến nhất là sử dụng phương thức insert(index, element), trong đó chỉ mục chỉ vị trí mà chúng ta muốn chèn và phần tử là mục cần chèn

Tuy nhiên chúng ta có những cách khác như sử dụng các phương thức append(),extend(). Chúng ta cũng có thể thêm bằng cách cắt mảng. Kiểm tra các phần ở trên để biết thêm về các phương pháp này

Q #4) Làm cách nào để chúng tôi lấy tất cả các mã loại có sẵn trong mảng Python?

Câu trả lời. Tài liệu chính thức của Python chứa tất cả các mã loại và biết thêm chi tiết về chúng. Ngoài ra, chúng tôi có thể lấy các mã loại này từ thiết bị đầu cuối bằng cách sử dụng mã

Ví dụ 22 .

>>> import array # import array module
>>> myarray = array.array('i',[5,6,7,2,3,5])
>>> myarray
array('i', [5, 6, 7, 2, 3, 5])
9

Từ đầu ra ở trên, mỗi chữ cái trong chuỗi được trả về đại diện cho một loại mã. Chính xác hơn, đây là các loại Python khác nhau

'b' = int
'B' = int
'u'=Ký tự Unicode
'h
‘H’=int
‘i’=int
‘I’=int
‘l’=int
‘L’=int
‘q’=int
‘Q’=int
‘f’=float
‘d’=float

Sự kết luận

Trong hướng dẫn này, chúng ta đã xem mảng Python là một mô-đun tích hợp sẵn

Chúng ta cũng đã xem xét các thao tác cơ bản của Array như Traverse, Insertion, Delete, Search, Update. Cuối cùng, chúng ta đã xem xét một số phương thức và thuộc tính Array thường được sử dụng