# List Python
###### author: ***Bổ Nôm***
### Note
Khi học bất kì một ngôn ngữ nào thì tài liệu đầy đủ nhất là tài liệu tham khảo (documentation, referrences) của chính nhà phát hành:
https://docs.python.org/3/ (hình thức hơi xấu)
## Lý thuyết mảng (list)
**1.** Mảng là 1 tập hợp các phần tử có thể cùng kiểu dữ liệu, hoặc khác kiểu dữ liệu được đặt trong cặp dấu ngoặc $[,]$.
***Ví dụ***
a = [1, 2, 3, 4]
b = ["ab", "cde", edf"]
c = [1, "acb", 2, "def"]
Trong đó: a là mảng các số nguyên, b là mảng các chuỗi, c là mảng vừa số vừa chuỗi.
**2.** Khởi tạo mảng
a = []
**3.** Để lấy độ dài mảng ta dùng hàm **len()**.
***code***
a = [1, 2, 3, 4]
print(len(a))
***Kết quả***
4
**4.** Để thêm phần tử vào **cuối** mảng ta dùng hàm **append()**.
***code***
a = []
a.append("bcd")
a.append("cdef")
print(a)
***Kết quả***
['bcd', 'cdef']
**5.** Duyệt và cắt mảng tương tự như duyệt và cắt xâu (xem lại lý thuyết bài xâu).
***Chú ý***
- Để nhập 1 mảng trên 1 dòng ta dùng cú pháp sau
arr = list(map(KDL, input().split()))
**trong đó** : ***KDL*** là kiểu dữ liệu của các phần tử trong mảng.
**6.** Phương thức list trong Python
Những phương thức có sẵn cho list trong Python gồm:
- **append()**: Thêm phần tử vào cuối list.
- **extend()**: Thêm tất cả phần tử của list hiện tại vào list khác.
- **insert()**: Chèn một phần tử vào index cho trước.
- **remove()**: Xóa phần tử khỏi list.
- **pop()**: Xóa phần tử khỏi list và trả về phần tử tại index đã cho.
- **clear()**: Xóa tất cả phần tử của list.
- **index()**: Trả về index của phần tử phù hợp đầu tiên.
- **count()**: Trả về số lượng phần tử đã đếm được trong list như một đối số.
- **sort()**: Sắp xếp các phần tử trong list theo thứ tự tăng dần.
- **reverse():** Đảo ngược thứ tự các phần tử trong list.
- **copy()**: Trả về bản sao của list.
**Tài liệu tham khảo:**
- https://codelearn.io/sharing/quick-note-about-python-list
- https://cafedev.vn/tu-hoc-python-list-trong-python/
- https://niithanoi.edu.vn/su-dung-va-thao-tac-voi-list-trong-python.html