Cách nhập list trong Python
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. Ghi chép 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. Show 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: [] 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] 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)[1, 2, 3, 1, 2, 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")False 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). First index: 0 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. Last index by len: 6 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) integer_list = [1, 2, 3, 4, 5] print(f"integer_list: {integer_list}") integer_list.append(6) print(f"integer_list after append: {integer_list}")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) integer_list = [1, 2, 3, 4, 5] integer_list.insert(2, 10) print(f'After insert {integer_list}')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ụ: integer_list = [1, 2, 3, 4, 5] float_list = [1.0, 2.1, 3.2, 4.3] numbers = [] numbers = numbers + integer_list print(f'after +: {numbers}') numbers.extend(float_list) print(f'after extend: {numbers}')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ụ: integer_list = [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10] number = 3 index = integer_list.index(3) print(f"index of {number} in {integer_list}: {index}") number = 11 index = integer_list.index(11)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. integer_list = [1, 2, 3, 4, 5] number = 4 print(f'{number} is in {integer_list}:', number in integer_list) number = 6 print(f'{number} is in {integer_list}:', number in integer_list)4 is in [1, 2, 3, 4, 5]: True 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 Trước khi xóa [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10] 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) Cách sử dụng reverse, key đã được mô tả khá chi tiết tại bài viết: 1. sorted-Cách Tăng Tốc Độ Xử Lý Đối Tượng Sequence Type. 10. Lấy ra các phần tử với vòng lặp.Để lấy ra từng phần tử trong một List, thường các lập trình viên sẽ dùng vòng lặp for. integer_list = [1, 2, 3, 4, 5] for number in integer_list: print(number)Kết quả: Để lấy ra index và giá trị tại từng vị trí, sử dụng vòng lặp for với built-in function enumerate for index, number in enumerate(integer_list): print(f"index: {index}- value: {number}")index: 0- value: 1 Ngoài những thông tin ở trên, các bạn có thể tham khảo thêm các thông tin ở các bài viết mà tôi đã viết trên CodeLearn: Kết:Lúc đầu, tôi định viết một bài viết ngắn ngắn để tóm tắt các built-in function của kiểu dữ liệu List nhưng việc đưa nhiều ví dụ vào bài viết đã làm cho bài viết trở thành nhiều chữ hơn. Hy vọng với số lượng ví dụ nhiều như trên, các bạn mới làm quen với Python sẽ dễ dàng hiểu và sẵn sàng sử dụng kiểu dữ liệu List. |