Một biến chứa nhiều giá trị
Danh sách lưu nhiều phần tử; xâu lưu dãy kí tự. Cả hai có thứ tự, nên cần phân biệt vị trí với giá trị nằm tại vị trí đó.
Chỉ số bắt đầu từ 0
Với dãy dài n, chỉ số không âm hợp lệ từ 0 đến n−1. Chỉ số −1 chỉ phần tử cuối. Lát cắt a[start:stop] không lấy stop. len cho số phần tử/kí tự.
Danh sách có thể sửa phần tử, append thêm một phần tử cuối, pop lấy và bỏ phần tử theo vị trí (mặc định cuối). Xâu không sửa tại chỗ theo chỉ số; ta tạo xâu mới. split tách xâu, join nối các xâu, find trả vị trí tìm thấy đầu tiên hoặc −1 khi không thấy. Chú ý phương thức có làm đổi đối tượng hay trả một kết quả mới.
Sửa danh sách
```python
a = [4, 7, 9]
a[1] = 5
a.append(2)
print(a[0], a[-1], len(a))
```
Danh sách thành [4, 5, 9, 2]. Kết quả in 4 2 4. Chỉ số 1 là phần tử thứ hai, không phải giá trị 1 cần tìm.
Thử vận dụng
Với s = "TINHOC", s[1:4] là xâu nào?
TIN bắt đầu ở chỉ số 0.
Đúng: lấy từ 1 đến trước 4.
Phương án lấy thêm chỉ số 4.
Phương án bỏ chỉ số 1.
Lời giải
Lấy các chỉ số 1,2,3 là I,N,H; không lấy chỉ số 4.
Tách và nối xâu
```python
words = "hoc tin hoc".split()
result = "-".join(words)
print(result)
```
split tạo ba xâu hoc, tin, hoc; join nối bằng dấu gạch ngang, được hoc-tin-hoc. Không tự loại phần tử trùng.
Ví dụ xem cách làm
a = [2, 6, 8]; x = a.pop(); kết quả x và a là gì?
Lời giải
x = 8; a còn [2, 6]. pop không chỉ đọc mà còn bỏ phần tử cuối khỏi danh sách.
Ví dụ xem cách làm
Vì sao s[0] = "A" với s là xâu gây lỗi? Có thể tạo xâu mới bắt đầu A thế nào khi s không rỗng?
Lời giải
Xâu không hỗ trợ gán thay một kí tự theo chỉ số. Có thể dùng s = "A" + s[1:] để tạo rồi gán xâu mới.
Những điều cần nhớ
Theo dõi chỉ số từ 0, cận cuối lát cắt bị loại và tác động của phương thức. Danh sách sửa được; xâu cần tạo giá trị mới.
Đang học