Hướng dẫn dùng slicing python python
Tiếp tục với chủ đề các hàm tích hợp sẵn trong Python, bài viết sẽ giới thiệu cho các bạn về hàm slice() với cú pháp, cách sử dụng cũng như các ví dụ cụ thể. Mời bạn đọc theo dõi. Show Hàm slice() trong Python trả về một slice object. Đối tượng này giúp bạn xác định cách cắt một chuỗi có sẵn (có thể là string, bytes, tuple, list, range) hoặc các đối tượng hỗ trợ giao thức chuỗi (như _getitem__(), __len__()). Cú pháp hàm slice() trong Python:
Các tham số của hàm slice()Hàm slice() có thể có tới 3 tham số: Nếu chỉ truyền một tham số vào slice() thì start và step không có giá trị. Giá trị trả về từ slice()Hàm slice() trả về một slice object sử dụng để cắt một chuỗi theo các chỉ mục tương ứng truyền trong hàm. List là một kiểu dữ liệu thông dụng, thường được các lập trình viên dùng trong các ứng dụng cần có sự lưu trữ tạm thời. Python hỗ trợ cực nhiều các function, tiện ích để đẩy nhanh việc truy xuất dữ liệu vào/ra với List. Bài viết dưới đây sẽ giới thiệu với các bạn về kiểu dữ liệu thông dụng này, hãy cùng khám phá với Hybrid Technologies nhé!1. Khởi tạo listĐể khởi tạo một list, cách nhanh nhất là dùng cặp [] đại diện cho kiểu dữ liệu List. # Create an empty list
empty_list = []
# Create a list of numbers
integer_list = [2, 3, 5]
# Create a list of string
string_list = ['code', 'learn', 'lap-trinh']
# create a list of some type
mixed_list = ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]
print(f"empty_list: {empty_list}")
print(f"integer_list: {integer_list}")
print(f"string_list: {string_list}")
print(f"mixed_list: {mixed_list}")
empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']] Python cung cấp built-in function list() để thực hiện khởi tạo một List với đầu vào là một kiểu dữ liệu khác. Cách dùng này giống như là đang convert kiểu dữ liệu vậy. # Create a list from a tuple my_tuple = (1, 1, 2, 3, 5, 8) tuple_list = list(my_tuple) # Create a list from the range() integer_range_list = list(range(10)) # Create a list from a string letter_list = list('codelearn') print(f"tuple_list: {tuple_list}") print(f"integer_range_list: {integer_range_list}") print(f"letter_list: {letter_list}") tuple_list: [1, 1, 2, 3, 5, 8] integer_range_list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] letter_list: ['c', 'o', 'd', 'e', 'l', 'e', 'a', 'r', 'n'] Như ví dụ trên, ta thấy List có thể chứa được các kiểu dữ liệu khác nhau: number, string, list,… 2. Các toán tử với ListKiểu dữ liệu List hỗ trợ toán tử +, tương đương với việc cộng hai List vào nhau. operator_1 = [1, 2, 3]
operator_2 = [3, 4, 5]
result = operator_1 + operator_2
print(f"{operator_1} + {operator_2} = {result}") [1, 2, 3] + [3, 4, 5] = [1, 2, 3, 3, 4, 5] Với phép toán số học, List hỗ trợ phép toán * với một số, tương đương với việc “gấp thếp” thêm số phần tử vào List number_list = [1, 2, 3]
print(number_list * 2)
print(number_list * 3)
3. Kiểm tra số lượng phần tử/rỗngĐể kiểm tra số lượng phần tử trong List, chúng ta sẽ dùng built-in function len() number_list = [1, 2, 3, 3, 4, 5]
len_of_list = len(number_list)
print(f'{number_list} have {len_of_list} item') [1, 2, 3, 3, 4, 5] have 6 item Nếu một List rỗng (số lượng phần tử = 0), tương đương với giá trị Faulty empty_list = []
print(bool(empty_list))
if not empty_list:
print("Empty list")
4. IndexĐể lấy ra một phần tử trong List chúng ta truy xuất vào List theo index (số thứ tự của phần tử trong List). # a list has value equal index.
number_list = [0, 1, 2, 3, 4, 5, 6]
print("First index: ", number_list[0])
print("Second index: ", number_list[1])
print("Third index: ", number_list[2])
print("Last index:", number_list[len(number_list) - 1])
Câu lệnh lấy ra giá trị cuối cùng của List ở trên là thường dùng cho các ngôn ngữ lập trình C-Style, ở Python, các Pythonista không làm như vậy. print("Last index by len:", number_list[len(number_list) - 1])
print("Last index by negative index:", number_list[-1])
print("Downward index by len:", number_list[len(number_list) - 2])
print("Downward index by negative index:", number_list[-2])
5. Slice & SlicingTrong quá trình sử dụng, có lúc chúng ta sẽ phải thực hiện xử lý dữ liệu trong một tập con của List (lấy các giá trị từ phần tử thứ x đến y). Cách dùng slice như ví dụ dưới đây: number_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Lẩy 5 phần tử đầu tiên (từ index 0 đến index 4)
sub_list_5 = number_list[:5]
# Lấy dữ liệu từ phần tử thứ 6 (từ index 5 đến cuối)
sub_list_from_6 = number_list[5:]
# Lấy ra dữ liệu từ phần tử thứ 3 đến thứ 6 (index 2 --> 5)
sub_list_3_to_6 = number_list[2:6]
# Lấy các phần tử với bước nhảy 3
sub_list_step_3 = number_list[::3]
print("Number list", number_list)
for index, value in enumerate(number_list):
print("Số thứ tự:", index, "Giá trị: ", value)
print("Lấy 5 phần tử đầu tiên", sub_list_5)
print("Lấy dữ liệu từ phần tử thứ 6", sub_list_from_6)
print("Lấy dữ liệu từ phần tử thứ 3 đến 6", sub_list_3_to_6)
print("Lấy các phần tử với bước nhảy 3", sub_list_step_3) Number list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Công thức của slice: list[start:stop:step] start: Vị trí bắt đầu muốn lấy dữ liệu. Mặc định start = 0 stop: Vị trí cuối muốn lấy dữ liệu. Mặc định stop = len(list). step: Bước nhảy khi thực hiện lấy ra dữ liệu. Mặc định step=1. Tương đương với việc ta lấy ra được một sub list có giá trị: [1, 4, 7, 10] 6. Thêm phần tử vào ListThêm phần tử vào cuối List dùng function List.append(item) empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]0 integer_list: [1, 2, 3, 4, 5] Thêm phần tử vào một vị trí bất kỳ trong list, dùng List.insert(index, value) empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]1 After insert [1, 2, 10, 3, 4, 5] Thêm các phần tử của một list khác vào list, có 2 cách: Tùy vào nhu cầu sử dụng mà chúng ta dùng 1 trong 2 cách trên. Ví dụ: empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]2 after +: [1, 2, 3, 4, 5] 7. Tìm kiếm trong listĐể tìm kiếm trong List, Python cung cấp 1 function là list.index(x[, start[, end]]) Giá trị trả về: Trả về index của giá trị cần tìm nếu như giá trị đang có trong index. Ví dụ: empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]3 index of 3 in [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10]: 2 ValueError: 11 is not in list Nếu không quan tâm đến vị trí của dữ liệu trong list mà chỉ quan tâm đến có trong list hay không, thường dùng câu lệnh với từ khóa in. empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]4 empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]5 6 is in [1, 2, 3, 4, 5]: False 8. Xóa phần tử khỏi list..remove(item): Xóa phần tử đầu tiên có giá trị bằng với giá trị yêu cầu xóa Ngoài ra có một cách xóa khác empty_list: [] integer_list: [2, 3, 5] string_list: ['code', 'learn', 'lap-trinh'] mixed_list: ['code', 'learn', 'lap-trinh', 'so', 0, True, ['hoc', 'lap', 'trinh']]6
9. Sắp xếp trong list.Để thực hiện sắp xếp các item trong list, Python cung cấp cho chúng ta một function là .sort(key=None, reverse=False), ngoài ra thì còn có built-in function sorted(list, key=None, reverse=False) |