Bài 2: Kiểu Dữ Liệu Trong Python

Bài 2: Kiểu dữ liệu trong python

Trong bài viết này, chúng ta sẽ tìm hiểu các kiểu dữ liệu dạng container trong python

Kiểu dữ liệu string

string là tập hợp các bytes được biểu diễn dưới dạng ký tự unicode

Ví dụ

 1
 2hello = "hi, i am alex"
 3
 4print(hello)
 5
 6greating = "i am from việt Nam"
 7
 8print(greating)
 9
10
11#Kết quả
12
13>>> print(hello)
14hi, i am alex
15
16>>> print(greating)
17i am from việt Nam

Một vài phương thức cơ bản của string

Phương thức isdecimal, isdigit, isnumeric

  • isdecimal: Trả về true nếu toàn bộ các ký tự là decimal (0-9)

  • isdigit: Trả về true nếu toàn bộ ký tự là digit. Bao gồm các số (0-9), số mũ trên (ví dụ: x2), số mũ dưới (ví dụ: x2).

  • isnumeric: Trả về true nếu toàn bộ ký tự là numeric. Bao gồm các số (0-9), số mũ trên (ví dụ: x2), số mũ dưới (ví dụ: x2) , phân số ( ví dụ: 1⁄2)

Ví dụ:

 1
 2# số 18 là:
 3print('18'.isdecimal())
 4print('18'.isdigit())
 5print('18'.isnumeric())
 6
 7# Kết quả
 8
 9>>> print('18'.isdecimal())
10True
11>>> print('18'.isdigit())
12True
13>>> print('18'.isnumeric())
14True
 1
 2# số 2 mũ 3 là:
 3print('2\u00b3')
 4print('2\u00b3'.isdecimal())
 5print('2\u00b3'.isdigit())
 6print('2\u00b3'.isnumeric())
 7
 8# Kết quả
 9
10>>> print('2\u00b3')
112³
12>>> print('2\u00b3'.isdecimal())
13False
14>>> print('2\u00b3'.isdigit())
15True
16>>> print('2\u00b3'.isnumeric())
17True
 1
 2# số ⅓ là:
 3print('\u2153')
 4print('\u2153'.isdecimal())
 5print('\u2153'.isdigit())
 6print('\u2153'.isnumeric())
 7
 8# Kết quả
 9
10>>> print('\u2153'.isdecimal())
11False
12>>> print('\u2153'.isdigit())
13False
14>>> print('\u2153'.isnumeric())
15True

Phương thức isascii, isalpha, isalnum, isspace, isupper

  • isalpha: Trả về true nếu toàn bộ ký tự trong bảng alphabet(a-z). Không chứa ký tự khoảng trắng, # @ $ …

  • isalnum: Trả về true nếu toàn bộ ký tự là alphanumeric (a-z,0-9)

  • isascii: Trả về true nếu toàn bộ là ký tự ascii (a-z)

  • isspace: Trả về true nếu toàn bộ ký tự là khoảng trắng

  • isupper: Trả về true nếu toàn bộ ký tự đều in hoa.

Ví dụ:

 1
 2>>> print("alex".isalpha())
 3True
 4
 5>>> print("alex100".isalpha())
 6False
 7
 8>>> print("alex100".isalnum())
 9True
10
11>>> print("alex100 $%".isalnum())
12False
13
14>>> print("alex100 $%".isascii())
15True
16
17
18>>> print("alex100".isspace())
19False
20>>> print("".isspace())
21False
22>>> print(" ".isspace())
23True
24
25
26>>> print(" ".isupper())
27False
28>>> print("abc".isupper())
29False
30>>> print("AA".isupper())
31True

Phương thức lstrip, rstrip, strip

  • Phương thức lstrip: Xoá chuỗi dư thừa ở bên trái, mặc định chuỗi dư thừa là khoảng trắng
  • Phương thức rstrip: Xoá chuỗi dư thừa ở bên phải, mặc định chuỗi dư thừa là khoảng trắng
  • Phương thức strip: Xoá chuỗi dư thừa ở hai bên, mặc định chuỗi dư thừa là khoảng trắng

Ví dụ

 1
 2>>> print("....     alex black    ..".lstrip(".")) # chỉ xoá . bên trái
 3     alex black    ..
 4
 5>>> print("....     alex black    ..".rstrip(".")) # chỉ xoá . bên phải
 6....     alex black
 7
 8>>> print("....alex black..".strip(".")) # xoá . ở hai bên
 9alex black
10
11
12>>> print("    ....alex black..".strip()) # xoá khoảng trắng ở hai bên
13....alex black..

Phương thức find, index

Cả hai phương thức find và index được sử dụng để tìm vị trí đầu tiên của phần tử cần tìm

  • Phương thức find: Trả về -1 nếu phần tử không tìm thấy

  • Phương thức index: Trả về lỗi nếu phần tử không tìm thấy

Ví dụ:

 1
 2>>> print("alex black 18".find("b"))
 35
 4
 5>>> print("alex black 18".index("b"))
 65
 7
 8>>> print("alex black 18".find("a",5))
 97
10
11>>> print("alex black 18".index("a",5))
127
13
14>>> print("alex black 18".find("z"))
15-1
16
17>>> print("alex black 18".index("z"))
18Traceback (most recent call last):
19  File "<stdin>", line 1, in <module>
20ValueError: substring not found

Phương thức format

Phương thức format được sử dụng để định dạng chuỗi.

Ví dụ:

 1
 2greetings = "Hello everyone, my name {name}, i am {age} year old. I come from {location}"
 3
 4name = "alex Black"
 5age = 18
 6location = "the moon"
 7print(greetings.format(name=name, age=age, location=location))
 8
 9#Kết quả
10
11>>> print(greetings.format(name=name, age=age, location=location))
12Hello everyone, my name alex Black, i am 18 year old. I come from the moon

Cách viết này khá dài dòng lê thê, một cách khác là chúng ta có thể sử dụng f string.

f string

python 3 hỗ trợ f string, giúp format chuỗi, trông đẹp hơn so với phương thức format ở trên.

1
2>>> age =18
3>>> name= 'Alex Black'
4>>> location='the moon'
5
6>>> print(f"hello, my name {name}. I am {age} years old. I come from  {location}")
7hello, my name Alex Black. I am 18 years old. I come from  the moon

Kiểu dữ liệu tuple

Tuple là tập cho phép chúng ta gán nhiều biến vào một biến. Ví dụ:

 1tupinfo = ('Alex', 'Black','1978','Emprise', 'Engineer','Ho Chi Minh');
 2tupinfo = (1,3,5,7,9,9);
 3print(tupinfo[0])
 4print(tupinfo[1:4])
 5
 6#kết quả
 7>>> print(tupinfo[0])
 81
 9>>> print(tupinfo[1:4])
10(3, 5, 7)
11>>>

Packing và Unpacking

Thuật ngữ packing ám chỉ việc ta thêm giá trị vào tuple.

Thuật ngữ unpacking ám chỉ việc ta phân giải các giá trị của tuple ra nhiều biến.

Chúng ta cùng xem ví dụ:

 1
 2a = ("alex" , 18, "Staff") # tuple packing
 3
 4(name, age, position) = a # unpacking tuple
 5
 6print(name)
 7print(age)
 8print(position)
 9
10# Kết quả
11
12>>> print(name)
13alex
14>>> print(age)
1518
16>>> print(position)
17Staff

So sánh các biến có kiểu dữ liệu tuple

Python cho phép so sánh các biến thuộc kiểu dữ liệu tuple với nhau. Chúng ta có thể thực hiện các phép so sánh bằng, so sánh lớn hơn, so sánh bé hơn. Việc so sánh được thực hiện lần lượt bằng cách so sánh giá trị của từng phần tử với nhau theo thứ tự. Phần tử thứ nhất sẽ so sánh với phần tử thứ nhất, phần tử thứ hai sẽ so sánh với phần tử thứ hai….

Ví dụ:

 1
 2num1 = (3,5,7)
 3
 4num2 = (3,6,4)
 5
 6print(num1>num2)
 7print(num1==num2)
 8print(num1<num2)
 9
10Kết quả:
11
12>>> print(num1>num2)
13False
14>>> print(num1==num2)
15False
16>>> print(num1<num2) # do 6 lớn hơn 5, nên num2 lớn hơn num1
17True

Một lưu ý nhỏ là ở python, phép so sánh bằng sẽ là hai dấu bằng (==), không phải một dấu =. Dấu = đại diện cho phép gán giá trị cho biến.

Slicing trong Tuple

Để lấy ra một nhóm các phần tử liền kề nhau trong tuple, chúng ta sử dụng một hàm có tên là slicing. Slicing có thể áp dụng cho tuple, array, list.

Ví dụ:

1
2ages = (18,16,15,18,15,17,19,18,17)
3print(ages[2:4])
4>>> print(ages[2:4])
5(15, 18)

Các hàm dựng sẵn của Tuple

Để thực hiện các công việc khác nhau, kiểu dữ liệu tuple có xây dựng một số hàm để chúng ta sử dụng, như là all(), any(), enumerate(), max(), min(), sorted(), len(), tuple(), etc.

Kiểu dữ liệu từ điển - dictionary

Trong python, kiểu từ điển là tập hợp các dữ liệu có dạng key-value. Trong đó, Key là duy nhất trong từ điển. Value có thể là list, tuple, dictionary, số, chuỗi, túm lại là value không bị giới hạn về kiểu dữ liệu, thích lưu kiểu gì cũng được. Có hai cách để tạo biến có kiểu dữ liệu từ điển, một là dùng từ khoá dict(), hai là dùng dấu đóng mở ngoặc nhọn {}.

Ví dụ

1
2info = {'name': "alex", age:18, 'position': "Staff" }
3print(info)
4
5Kết quả:
6
7>>> print(info)
8{'alex': 'alex', 18: 18, 'position': 'Staff'}

Qua 10 triệu lần test trên con máy apple m1 của mình, mình thấy rằng khai báo biến dictionary bằng dấu {} sẽ chạy nhanh hơn so với khai báo sử dụng dict()

Thuộc tính của keys trong từ điển.

Có ba điểm quan trọng về key của dictionary chúng ta cần phải nhớ:

  • Một là key không cho phép trùng nhau.

  • Key phải là thuộc nhóm bất biến - immutable, như number, tuple , string.

  • Key có phân biệt hoa thường.

Ví dụ:

1
2
3item = {"name":" iPhone 13 Pro Max 512GB","Price":"34.690.000","Brand":"Apple","BRAND":"Apple"}
4
5print(item["Brand"])
6
7>>> print(item["Brand"])
8Apple

Một vài phương thức của dictionary

copy

Phương thức này được sử dụng để copy phần tử của biến này sang biến khác.

Ví dụ:

1
2item = {"Điện thoại iPhone 13 Pro Max 512GB" :"34.690.000","Điện thoại iPhone 13 Pro Max 1TB":"40.990.000"}
3
4item_new = item.copy()
5
6print(item_new)
7
8>>> print(item_new)
9{'Điện thoại iPhone 13 Pro Max 512GB': '34.690.000', 'Điện thoại iPhone 13 Pro Max 1TB': '40.990.000'}

update

Phương thức update được sử dụng để cập nhật dữ liệu nếu key đã có, nếu key chưa có thì thêm cặp key-value vào từ điển.

Ví dụ:

 1
 2item = {"Điện thoại iPhone 13 Pro Max 512GB" :"34.790.000","Điện thoại iPhone 13 Pro Max 1TB":"40.990.000"}
 3
 4item_new = item.copy()
 5item_new.update({"Điện thoại iPhone 13 Pro Max 512GB" :"34.690.000"}) # cập nhật giá trị, vì key đã tồn tại
 6
 7item_new.update({"Điện thoại iPhone 13 Pro Max 128GB" :"28.390.000"}) # thêm cặp key-value vào biến item_new
 8
 9print(item)
10print(item_new)
11
12#Kết quả
13
14>>> print(item)
15{'Điện thoại iPhone 13 Pro Max 512GB': '34.790.000', 'Điện thoại iPhone 13 Pro Max 1TB': '40.990.000'}
16>>> print(item_new)
17{'Điện thoại iPhone 13 Pro Max 512GB': '34.690.000', 'Điện thoại iPhone 13 Pro Max 1TB': '40.990.000', 'Điện thoại iPhone 13 Pro Max 128GB': '28.390.000'}

del

Để xoá một key ra khỏi từ điển, chúng ta dùng từ khoá del

 1
 2item = {"Điện thoại iPhone 13 Pro Max 512GB" :"34.790.000","Điện thoại iPhone 13 Pro Max 1TB":"40.990.000"}
 3
 4del item["Điện thoại iPhone 13 Pro Max 512GB"]
 5
 6print(item)
 7
 8#Kết quả
 9
10>>> print(item)
11{'Điện thoại iPhone 13 Pro Max 1TB': '40.990.000'}

item

Phương thức items trả về giá trị của từ điển dưới dạng list tuple (key,value)

1
2info = {"name":"Alex","age":18,"position":"staff"}
3print(info.items())
4
5# Kết quả
6
7>>> print(info.items())
8dict_items([('name', 'Alex'), ('age', 18), ('position', 'staff')])

len

Phương thức len trả về số lượng phần tử trong từ điển

1
2item = {"Điện thoại iPhone 13 Pro Max 512GB" :"34.790.000","Điện thoại iPhone 13 Pro Max 1TB":"40.990.000"}
3
4print(len(item))
5
6#Kết quả
7
8>>> print(len(item))
92

Merge

Để nối hai hay nhiều từ điển vào làm một, có một số cách sau:

  • Sử dụng hàm update, hàm này đã được mình nói rõ ở trên, mình không nhắc lại nữa

  • Sử dụng Kwargs **.

Từ phiên bản 3.5 trở lên, python hỗ trợ “đối số từ khóa” - Kwargs - keyword arguments là **, và lúc này, chúng ta có thể sử dụng ** ở trước tên biến.

Ví dụ

 1
 2itemApple = {"Điện thoại iPhone 13 Pro Max 512GB" :"34.790.000","Điện thoại iPhone 13 Pro Max 1TB":"40.990.000"}
 3
 4
 5itemSamsung = {"Điện thoại Samsung Galaxy S22 Ultra 5G 128GB ":"27.990.000","Điện thoại Samsung Galaxy S22 Ultra 5G 512GB":"33.990.000"}
 6
 7itemPhone = {**itemApple,**itemSamsung}
 8
 9print(itemPhone)
10
11
12>>> print(itemPhone)
13{'Điện thoại iPhone 13 Pro Max 512GB': '34.790.000', 'Điện thoại iPhone 13 Pro Max 1TB': '40.990.000', 'Điện thoại Samsung Galaxy S22 Ultra 5G 128GB ': '27.990.000', 'Điện thoại Samsung Galaxy S22 Ultra 5G 512GB': '33.990.000'}

Tổng kết:

  • Kiểu dữ liệu từ điển lưu dữ liệu dưới dạng key-value

  • Key-value được ngăn cách với nhau bởi dấu hai chấm (:)

  • Cặp key-value được ngăn cách với cặp khác bởi dấu phẩy

  • Key trong kiểu dữ liệu từ điển là duy nhất

  • Kiểu từ điển không lưu thông tin theo một thứ tự cụ thể, thông tin khi lấy ra có thể khác thứ tự với thông tin khi nhập vào. Tuy nhiên, từ phiên bản python3.7 trở đi, kiểu từ điển đã được sắp xếp theo thứ tự của key

Kiểu dữ liệu list

List là cái thùng chứa, để chứa tập các dữ liệu. Để khai báo kiểu dữ liệu list, ta có thể dụng dấu đóng mở ngoặc vuông ([]), hoặc dùng từ khoá list()

1
2lsta = [1,2,3,4,5] # đây là khai báo list chính thống của python
3
4lstb = list((1,2,3,4,5)) # đây là sử dụng hàm để tạo list
5
6print(lsta)
7
8print(lstb)

Truy xuất dữ liệu trong list

Dữ liệu trong list có thể được truy xuất thông qua index. Index là vị trí đứng của phần tử trong list.

Ví dụ, nếu ta muốn lấy ra giá trị ở vị trí 0 của list có tên là lsta, ta thực hiện như sau: lst[0]

 1
 2lsta = [5,3,6,9]
 3
 4print(lsta[0])
 5print(lsta[2])
 6
 7>>> print(lsta[0])
 85
 9>>> print(lsta[2])
106

slicing

slicing là lấy một nhóm các phần tử trong list ra, cách thực hiện giống như tuple

1lsta = [5,3,6,9,3,5,1,2,9,6]
2
3print(lsta[1:5])
4
5>>> print(lsta[1:5])
6[3, 6, 9, 3]

Tuy nhiên, không giống như tuple, giá trị của tuple không thể thay đổi được, giá trị của list có thể thay đổi được, nên chúng ta có thể cập nhật giá trị cho list sử dụng slicing

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4print(lsta)
 5
 6print(lsta[2:4])
 7
 8lsta[2:4] = [8,8]
 9
10print(lsta)
11
12print(lsta[2:4])
13
14
15#Kết quả
16
17>>> print(lsta[2:4])
18[6, 9]
19>>>
20>>> lsta[2:4] = [8,8]
21>>>
22>>> print(lsta)
23[5, 3, 8, 8, 3, 5, 1, 2, 9, 6]
24>>>
25>>> print(lsta[2:4])
26[8, 8]

Một điều khá thú vị, là list hỗ trợ index ngược, ví dụ, nếu chúng ta muốn lấy phần tử cuối cùng, ta có thể sử dụng index [-1], dùng [-2] nếu muốn lấy phần tử kế cuối .

ví dụ

 1
 2
 3lsta = [5,3,6,9,3,5,1,2,9,6]
 4
 5print(lsta[-1])
 6
 7print(lsta[-2])
 8
 9#Kết quả
10
11>>> print(lsta[-1])
126
13>>>
14>>> print(lsta[-2])
159

Hệ quả của index ngược, là chúng ta có slicing với số âm

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4print(lsta[5:-1])
 5
 6print(lsta[5:-2])
 7
 8#Kết quả
 9
10>>> print(lsta[5:-1])
11[5, 1, 2, 9]
12>>>
13>>> print(lsta[5:-2])
14[5, 1, 2]

Các phương thức được hỗ trợ

append

Phương thức append dùng để thêm phần tử vào list

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4lsta.append(1)
 5
 6lsta.append([11,12])
 7
 8print(lsta)
 9
10
11# Kết quả
12
13>>> print(lsta)
14[5, 3, 6, 9, 3, 5, 1, 2, 9, 6, 1, [11, 12]]

pop

Phương thức pop dùng để xoá phần tử ở vị trí index ra khỏi list

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4lsta.pop(0)
 5
 6print(lsta)
 7
 8# Kết quả
 9
10>>> print(lsta)
11[3, 6, 9, 3, 5, 1, 2, 9, 6]

remove

Phương thức remove dùng để xoá phần tử ra khỏi list, nếu có nhiều phần tử có cùng giá trị với phần tử cần xoá, thì chỉ xoá thằng đầu tiên

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4lsta.remove(9)
 5
 6print(lsta)
 7
 8
 9# Kết quả
10
11>>> print(lsta)
12[5, 3, 6, 3, 5, 1, 2, 9, 6]

reverse

Phương thức reverse được dùng để đảo ngược list

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4lsta.reverse()
 5
 6print(lsta)
 7
 8
 9# Kết quả
10
11>>> print(lsta)
12[6, 9, 2, 1, 5, 3, 9, 6, 3, 5]

Các hàm được hỗ trợ

len

Hàm len trả về số lượng phần tử trong list

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4print(len(lsta))
 5
 6
 7# Kết quả
 8
 9>>> print(len(lsta))
1010

max

Hàm max trả về phần tử có giá trị lớn nhất trong list

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4print(max(lsta))
 5
 6
 7# Kết quả
 8
 9>>> print(max(lsta))
109

min

Hàm min trả về phần tử có giá trị nhỏ nhất trong list

 1
 2lsta = [5,3,6,9,3,5,1,2,9,6]
 3
 4print(min(lsta))
 5
 6
 7# Kết quả
 8
 9>>> print(min(lsta))
101

Kiểu dữ liệu set

Trong python, set là tập hợp không có thứ tự các dữ liệu. Dữ liệu trong set là duy nhất.

Để tạo một set, chúng ta sử dụng hàm set(), hoặc dùng dấu đóng mở ngoặc nhọn {}

Ví dụ:

 1
 2item_samsung = set(["Samsung Galaxy S22 Ultra 5G","Samsung Galaxy A13"])
 3
 4item_iphone = {"Iphone 12","Iphone 13"}
 5
 6print(item_samsung)
 7
 8print(item_iphone)
 9
10#Kết quả
11
12>>> print(item_samsung)
13{'Samsung Galaxy S22 Ultra 5G', 'Samsung Galaxy A13'}
14>>>
15>>> print(item_iphone)
16{'Iphone 13', 'Iphone 12'}

Một vài phương thức cơ bản của Set

Phương thức Add

Phương thức này có nhiệm vụ thêm phần tử và Set

Ví dụ:

 1
 2item = set()
 3
 4item.add("Iphone")
 5
 6item.add("Samsung")
 7
 8print(item)
 9
10
11# Kết quả
12
13>>> print(item)
14{'Samsung', 'Iphone'}

Phương thức Remove, Discard

Phương thức này dùng để xoá phần tử ra khỏi set. Điểm khác nhau của hai phương thức này là:

  • Phương thức remove: Xoá phần tử ra khỏi set, nếu không tồn tại phần tử cần xoá trong set, chương trình sẽ trả về lỗi KeyError

  • Phương thức discard: Xoá phần tử ra khỏi set, nếu không tồn tại phần tử cần xoá trong set, chương trình vẫn hoạt động bình thường.

Ví dụ:

 1
 2
 3item = set()
 4
 5item.add("Iphone")
 6
 7item.add("Samsung")
 8
 9print(item)
10
11item.discard("Samsung")
12
13item.discard("Xiaomi")
14
15item.remove("Oppo")
16
17# Kết quả
18
19>>> print(item)
20{'Samsung', 'Iphone'}
21>>>
22>>> item.discard("Samsung") # xoá bình thường
23>>>
24>>> item.discard("Xiaomi") # Xiaomi không tồn tại trong set item, chương trình vẫn không búng ra lỗi
25>>>
26>>> item.remove("Oppo") # Oppo không tồn tại trong set item, chương trình báo lỗi KeyError
27Traceback (most recent call last):
28  File "<stdin>", line 1, in <module>
29KeyError: 'Oppo'

Phương thức Pop

Phương thức pop được sử dụng để lấy phần tử đầu tiên của set ra, và loại phần tử cuối đó ra khỏi set.

Ví dụ:

 1
 2
 3item = {1,5,6,4,3,8,10}
 4
 5print(item)
 6
 7print(item.pop())
 8
 9print(item)
10
11
12# Kết quả
13
14>>> item = {1,5,6,4,3,8,10}
15>>>
16>>> print(item)
17{1, 3, 4, 5, 6, 8, 10}
18>>>
19>>> print(item.pop())
201
21>>>
22>>> print(item)
23{3, 4, 5, 6, 8, 10}

Phương thức Clear

Phương thức clear được sử dụng để xoá mọi phần tử trong set. Kết quả là chúng ta được một set rỗng

 1
 2
 3item_iphone = {"Iphone 12","Iphone 13"}
 4
 5item_iphone.clear()
 6
 7print(item_iphone)
 8
 9
10# Kết quả
11
12>>> print(item_iphone)
13set()

Kiểu dữ liệu array

Array là tập các phần tử được lưu trữ có thứ tự trong bộ nhớ. Các phần tử trong array phải có cùng kiểu dữ liệu. Kiểu dữ liệu array giống kiểu array trong c++.

Ví dụ:

 1
 2import array as arr
 3
 4item_number = arr.array('i',[1,2,3,5])
 5
 6print(item_number)
 7
 8
 9item_number_decimal = arr.array('d',[5.391,6.626,1.054,1.616])
10
11
12print(item_number_decimal)
13
14
15
16#Kết quả
17
18>>> print(item_number)
19array('i', [1, 2, 3, 5])
20
21>>> print(item_number_decimal)
22array('d', [5.391, 6.626, 1.054, 1.616])

Một vài phương thức cơ bản của array

Phương thức insert, phương thức append

Phương thức insert và append được sử dụng để thêm phần tử vào array, điểm khác biệt của hai phương thức là:

  • Phương thức insert: được sử dụng để chèn phần tử vào vị trí tuỳ ý.

  • Phương thức append: Chèn vào cuối array.

Ví dụ:

 1
 2import array as arr
 3
 4item_number = arr.array('i',[1,2,3,5])
 5
 6item_number.insert(2,4)
 7
 8print(item_number)
 9
10item_number.append(1)
11
12print(item_number)
13
14#Kết quả
15>>> item_number.insert(2,4)
16>>> print(item_number)
17array('i', [1, 2, 4, 3, 5])
18
19>>> item_number.append(1)
20>>> print(item_number)
21array('i', [1, 2, 4, 3, 5, 1])

Phương thức truy xuất phần tử theo index

Để truy xuất phần tử theo index, chúng ta sử dụng dấu ngoặc vuông [], kèm theo vị trí của phần tử cần truy xuất.

 1
 2
 3
 4import array as arr
 5
 6item_number = arr.array('i',[1,2,3,5])
 7
 8print(item_number[2])
 9
10
11#Kết quả
12
13>>> print(item_number[2])
143

Phương thức remove, phương thức pop

Phương thức remove và pop được sử dụng để xoá phần tử ra khỏi array.

  • Phương thức remove: Xoá phần tử ra khỏi mảng, nếu mảng có nhiều phần tử trùng với phần tử cần xoá thì chỉ xoá phần tử xuất hiện đầu tiên. Nếu phần tử không có trong mảng, chương trình sẽ búng ra lỗi.

  • Phương thức pop: Xoá phần tử ở vị trí index ra khỏi mảng, trả về là giá trị của phần tử bị remove. Nếu không truyền vào vị trí cần xoá, thì sẽ xoá phần tử cuối cùng trong mảng.

 1
 2
 3import array as arr
 4
 5item_number = arr.array('i',[1,2,3,5,2])
 6
 7print(item_number)
 8
 9item_number.remove(2)
10
11print(item_number)
12
13print(item_number.pop(2))
14
15print(item_number)
16
17
18#Kết quả
19
20>>> print(item_number)
21array('i', [1, 2, 3, 5, 2])
22>>> item_number.remove(2) # xoá số 2 đi
23>>>
24>>> print(item_number)
25array('i', [1, 3, 5, 2]) # Chỉ số 2 đầu tiên bị xoá
26>>>
27>>> print(item_number.pop(2)) # xoá phần tử ở vị trí số 2
285 # Phần tử ở vị trí số 2 là 5, phần tử 5 đã bị xoá
29>>>
30>>> print(item_number)
31array('i', [1, 3, 2])

Phương thức index

Phương thức này được sử dụng để tìm vị trí của phần tử trong array

 1
 2import array as arr
 3
 4item_number = arr.array('i',[1,2,3,5,2])
 5
 6print(item_number.index(2))
 7
 8
 9print(item_number.index(2,2))
10
11
12
13#Kết quả
14
15>>> print(item_number.index(2)) #Tìm vị trí của số 2
161
17>>>
18>>> print(item_number.index(2,2))# Tìm vị trí của số 2, bắt đầu từ vị trí 2
194

Chúc các bạn học thật tốt.

Comments