Chào mừng trở lại.
Hãy tiếp tục với các danh sách.
Bây giờ, cho đến nay những dấu ngoặc vuông này, chúng ta đã thấy chúng trước đây, phải không?
Chúng tôi đã nhìn thấy chúng khi làm việc với chuỗi.
Và cũng giống như chuỗi, danh sách khá giống nhau ở chỗ chúng ta có thể sử dụng phương pháp cắt danh sách.
Nếu bạn nhớ với việc cắt chuỗi, chúng ta có những thứ như xin chào và chúng ta có thể gán nó cho một chuỗi, giả sử một chuỗi
biến và chúng ta có thể thực hiện chuỗi và sau đó cắt.
Vì vậy, làm một cái gì đó như thế này.
Nơi chúng ta có điểm bắt đầu, điểm dừng và sau đó là bước qua.
Vì vậy, chúng tôi bắt đầu từ chỉ số 0 và kết thúc ở chỉ mục hai.
Và sau đó đi từng người một.
Vì vậy, cắt danh sách cũng có sẵn cho chúng tôi.
Vì vậy, hãy làm cho thẻ này lớn hơn một chút.
Và bạn thực sự có thể làm cho mọi thứ gọn gàng hơn bằng cách định dạng nó theo cách này.
Được rồi, vậy chúng ta nên thêm gì vào giỏ hàng của mình?
Chúng tôi cũng sẽ thêm một số đồ chơi.
Và sau đó, bạn biết gì không?
Amazon hiện đang bán hàng tạp hóa.
Vì vậy, chúng ta hãy thêm một số nho ngon.
Đáng kinh ngạc.
Bây giờ, giả sử tôi muốn lấy từng món hàng trong giỏ hàng.
Vâng, chúng tôi chỉ đơn giản làm điều này.
Và chúng tôi có toàn bộ danh sách của mình.
Nhưng chúng ta hãy sử dụng một số cắt danh sách.
Giả sử tôi muốn lấy từ mục đầu tiên đến mục thứ hai.
Nếu tôi bấm Chạy.
Tôi nhận được sổ ghi chép và kính râm.
Có lẽ tôi muốn đi đến cùng, nhưng hãy bỏ qua từng giây một.
Tôi nhận được vở và đồ chơi.
Chúng tôi bắt đầu bằng không.
Chúng tôi bước qua đồ chơi và chúng tôi bước qua và chúng tôi đã hoàn thành.
Đáng kinh ngạc.
Và đây là điều mà chúng ta đã thấy khi nói chuyện với chuỗi.
Nhưng đây là nơi nó trở nên thú vị.
Hãy nhớ cách tôi đã nói rằng các chuỗi là bất biến?
Điều đó có nghĩa là chúng tôi không thể thay đổi chúng.
Đúng.
Và chúng tôi đã nói về điều này khi chúng tôi có một chuỗi như Xin chào.
Tôi không thể chào số 0 bằng cách nói Z.
Tôi gặp lỗi ở đây.
Tôi nhận được đối tượng str không hỗ trợ gán mục.
Nó bất biến.
Nhưng điều thú vị với các danh sách là chúng có thể thay đổi được.
Vì vậy, nếu tôi thay đổi giỏ hàng Amazon của mình.
Và nói rằng, bạn biết không, tôi không thực sự muốn sổ ghi chép.
Vì vậy, tôi sẽ lấy mục đầu tiên, đó là sổ ghi chép.
Và thay vì sổ ghi chép, tôi muốn gì?
Chúng tôi sẽ nói rằng chúng tôi muốn một máy tính xách tay mới.
Đó là một nâng cấp lớn.
Khi tôi in giỏ hàng Amazon này.
Nhìn kìa.
Tôi có thể thay đổi danh sách này.
Và nó không cho tôi một lỗi theo nghĩa đó.
Danh sách có thể thay đổi.
Chúng tôi chỉ cần thay thế trên giá sách bộ nhớ của máy tính xách tay của chúng tôi và tôi nói, Này, đổi nó thành máy tính xách tay, và
họ để chúng tôi làm điều đó.
Vì vậy, điều đó thật tuyệt vời.
Nhưng chúng ta hãy thử một cái gì đó ở đây.
Điều gì sẽ xảy ra nếu tôi tạo một bản in khác ở đây và trong giỏ hàng Amazon, tôi sẽ sử dụng phương pháp cắt danh sách để giả sử rằng
tôi muốn mục từ chỉ mục của một cho đến chỉ mục của ba.
Hãy chạy điều này và xem điều gì sẽ xảy ra.
Hãy thử và đoán.
Đó có phải là những gì bạn mong đợi?
Hãy xem qua đoạn mã này.
Khi chúng tôi đến dòng thứ mười, chúng tôi lấy giỏ hàng Amazon đã được cập nhật với máy tính xách tay và tôi lấy mục
một.
Hai, ba.
Vì vậy, đó là kính râm.
Hai món đồ chơi.
Vì vậy, không một, hai.
Và sau đó chúng tôi dừng lại ở ba.
Chỉ để làm cho điều này dễ hiểu hơn.
Hãy bắt đầu với con số 0 ở đây.
Vì vậy, chúng tôi thấy rằng máy tính xách tay đã được thay đổi.
Và sau đó, ở đây trong cái thứ hai, trên dòng 11, chúng tôi in giỏ hàng Amazon.
Nhưng chờ một giây.
Danh sách này không thay đổi.
Và đó là bởi vì với việc cắt danh sách, chúng tôi đang tạo một danh sách mới.
Một bản sao mới của danh sách này.
Vì vậy, ở đây chúng tôi đang tạo một danh sách hoàn toàn mới để tôi thực sự có thể gán nó vào một giỏ hàng
mới có thể thay đổi sẽ là giỏ hàng Amazon.
Và chúng ta hãy làm điều tương tự ở đây.
Và thẻ mới là một danh sách hoàn toàn mới.
Tôi có thể thay đổi một xe hàng mới.
Hãy nói số không thành kẹo cao su.
Và nếu tôi in cái này.
Bạn thấy điều đó?
Tôi có hai danh sách riêng biệt mới, nhưng một danh sách có thể thay đổi được vì tôi có thể thay đổi bất kỳ thứ gì có trong chỉ mục bất
kỳ lúc nào tôi muốn.
Và mỗi khi chúng tôi cắt danh sách, chúng tôi tạo một bản sao mới của danh sách đó.
Nhưng tôi có một câu hỏi khó cho bạn ở đây.
Điều gì xảy ra nếu tôi chỉ làm điều này?
Nếu tôi chạy cái này.
Hừ!
Bạn có thấy điều đó không?
Thay vì cắt danh sách của mình, tôi chỉ nói rằng thẻ mới sẽ ngang bằng với giỏ hàng của Amazon.
Và tôi đã thay đổi chỉ số giỏ hàng mới bằng 0 thành kẹo cao su.
Nhưng bây giờ giỏ hàng Amazon của tôi cũng đã được sửa đổi.
Tại sao vậy?
Và đây là một câu hỏi hơi hóc búa mà bạn có thể gặp phải trong một cuộc phỏng vấn.
Lý do là ngay bây giờ cách mà tôi đã làm tương đương có nghĩa là, này, giỏ hàng mới sẽ ngang bằng với giỏ
hàng của Amazon.
Và giỏ hàng của Amazon bằng gì?
Chà, giỏ hàng của Amazon chỉ vào một nơi nào đó trong bộ nhớ trong máy của chúng tôi rằng, này, đây chính là giỏ
hàng của Amazon.
Vì vậy, vì ở đây chúng tôi không sao chép danh sách.
Thay vào đó, chúng tôi chỉ nói, này, giá trị của thẻ mới là bất cứ thứ gì trong bộ nhớ của giỏ hàng Amazon.
Giờ đây, khi chúng tôi sửa đổi giỏ hàng mới chỉ đơn giản là thay đổi giỏ hàng Amazon từ đây trở lại đây.
Vì vậy, đây là một khái niệm quan trọng.
Nếu bạn muốn, giả sử sao chép một danh sách, sau đó bạn làm điều gì đó như thế này.
Nơi bạn đã sao chép toàn bộ danh sách.
Và đây là thứ mà bạn sẽ thấy rất nhiều trong các cơ sở mã.
Nhưng dòng này nói rằng, này, tôi muốn tạo một bản sao.
Sử dụng phương pháp cắt danh sách để sao chép giỏ hàng Amazon này và nó sẽ giống với giỏ hàng mới để bây giờ nếu tôi chạy nó.
Bạn sẽ thấy rằng giỏ hàng Amazon ban đầu vẫn giữ nguyên, nhưng giỏ hàng mới giờ đây đã khác.
Đây là một cách hiểu nhanh mà bạn phải làm quen.
Nhưng đó là một khái niệm quan trọng, ý tưởng sao chép so với sửa đổi danh sách này.
Và đó là điều mà chúng ta sẽ khám phá thêm một chút trong vài video tiếp theo.
Còn bây giờ, hãy nghỉ ngơi đi và tôi sẽ gặp lại các bạn trong phần tiếp theo.
Tạm biệt.