---
title: "Cách tạo list rỗng trong python"
description: "Cách 1: a=[[0]*6]*5 print(a) a[1][1]=-1 print(a) Output: [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0,"
date: "2021-05-07"
author:
  name: "Nguyen Pham"
  role: "Xin chào. Mình thích lập trình và công nghệ. Đây là blog mình chia sẻ lại các kiến thức về lập trình, công nghệ."
  avatar: "http://0.gravatar.com/avatar/6fb61398e24046b34e13870dd6c357b9?s=128&d=mm&r=g"
category: "Programming"
tags: ["Programming", "Python", "array", "list", "python"]
coverImage: "/blog/covers/cach-tao-list-rong-trong-python.png"
featured: false
readingTime: "1 min read"
---

#### Cách 1:

```
a=[[0]*6]*5
print(a)
a[1][1]=-1
print(a)
```

Output:

```
[[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0]]

[[0, -1, 0, 0, 0, 0], 
[0, -1, 0, 0, 0, 0], 
[0, -1, 0, 0, 0, 0], 
[0, -1, 0, 0, 0, 0], 
[0, -1, 0, 0, 0, 0]]
```

Chuyện gì đang xảy ra. Nếu như mình nghĩ thì chỉ có một ô được thay đổi thành `-1` nhưng ở đây tất cả đều đổi. Tại sao?

Với cách này thì chúng đều trỏ đến cùng một đối tượng. do vây khi thay đổi một cái nó sẽ thay đổi tất.

Tham khảo

> https://stackoverflow.com/questions/6007881/what-does-the-0x-syntax-do-in-python
>
> Be warned that they all point to the same object. This is cool for immutables like integers but a pain for things like lists.

#### Cách 2: Nên dùng cách này

```
b= [[0 for k in range(6)] for l in range(5)]
print(b)
b[1][1]=-1
print(b)
```

```
[[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0]]

[[0, 0, 0, 0, 0, 0], 
[0, -1, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0]]
```
