<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>01-Lists :: My Site</title><link>https://trungnte.github.io/my-fcj-blog/python/01-lists/index.html</link><description>Một số chú ý về Lists trong Python 1. List có phải là array không? Trước đây mình hay cho rằng list trong Python chính là array, nhưng thực ra không phải như vậy. Các phần tử trong list có kiểu dữ liệu data type có thể không giống nhau. Shell &gt;&gt;&gt; a = [3.2, 'hello', [4, 7, 17.1]] &gt;&gt;&gt; print(a) [3.2, 'hello', [4, 7, 17.1]] &gt;&gt;&gt; type(a) &lt;class 'list'&gt; &gt;&gt;&gt; 2. Copy một list Shell &gt;&gt;&gt; a = [1, 2, 3] &gt;&gt;&gt; b = a &gt;&gt;&gt; print(a, b) [1, 2, 3] [1, 2, 3] &gt;&gt;&gt; b.sort(reverse = True) &gt;&gt;&gt; print(a, b) [3, 2, 1] [3, 2, 1] &gt;&gt;&gt; Thật thú vị, gán biến b = a, thì Python không clone data ra mà trỏ luôn vùng nhớ của a cho b. Sau khi search google thì mình mới biết đến shallow copy và deep copy 2.1 Shallow copy Shell &gt;&gt;&gt; a = [1, 2, 3] &gt;&gt;&gt; b = a.copy() &gt;&gt;&gt; print(a, b) [1, 2, 3] [1, 2, 3] &gt;&gt;&gt; b.sort(reverse = True) &gt;&gt;&gt; print(a, b) [1, 2, 3] [3, 2, 1] &gt;&gt;&gt; Important Chỉ đơn giản là dùng hàm copy để clone data Cách khác là dùng slicing để copy data Shell &gt;&gt;&gt; c = a[0:1] &gt;&gt;&gt; print(a, c) [1, 2, 3] [1] &gt;&gt;&gt; a.sort(reverse = True) &gt;&gt;&gt; print(a, c) [3, 2, 1] [1] &gt;&gt;&gt; 2.2 Deep copy Important Dùng cho nested lists để chắc chắc rằng tất cả các phần tử trong các đối tượng bên trong list đều được copy và độc lập</description><generator>Hugo</generator><language>en</language><lastBuildDate/><atom:link href="https://trungnte.github.io/my-fcj-blog/python/01-lists/index.xml" rel="self" type="application/rss+xml"/></channel></rss>