Page 61 - Em Học Python
P. 61
>>> list1 = [1, 2, 3, 4]
>>> list2 = ['I', 'ate', 'chocolate', 'and', 'I', 'want', 'more']
>>> list3 = list1 + list2
>>> print(list3)
[1, 2, 3, 4, 'I', 'ate', 'chocolate', 'and', 'I', 'want', 'more']
Ta cũng có thể nhân mảng với một số. Ví dụ nhân list1 với 5 ta viết là list1 * 5:
>>> list1 = [1, 2]
>>> print(list1 * 5)
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
Thực ra là ta vừa bảo Python lặp lại list1 năm lần, kết quả là ta có 1, 2, 1, 2, 1,
2, 1, 2, 1, 2.
Nhưng mặt khác, phép chia ( /) và phép trừ ( -) lại không như thế, lỗi luôn, ví dụ:
>>> list1 / 20
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
list1 / 20
TypeError: unsupported operand type(s) for /: 'list' and 'int'
>>> list1 - 20
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
list1 - 20
TypeError: unsupported operand type(s) for -: 'list' and 'int'
Nhưng, tại sao lại thế? Thế này, ghép các mảng với nhau bằng dấu + hay lặp lại nó
bằng dấu * nghe cũng khá hợp lý đúng không. Nghe hợp lý cả ở ngoài đời ấy chứ. Ví dụ,
nếu ai đó đưa em hai tờ danh sách để đi mua hàng và bảo , “Cộng hai danh sách này vào,”
em có thể hiểu và viết tuốt tuồn tuột đúng thứ tự cả hai danh sách này ra một danh sách
khác, đúng không nào. Tương tự như thế, nếu bảo, “Danh sách này nhân 3 lên nhé,” em có
thể hình dung ra ngay là viết lại danh sách này ba lần ra một danh sách khác.
Nhưng em sẽ chia mảng ra như thế nào? Giả sử em sẽ làm thế nào để chia một
mảng có 6 số (1 đến 6) thành hai phần? Dưới đây mới chỉ là ba cách tạm thôi nhé:
Chuỗi, mảng, tuple và map 35