Hướng dẫn what is the size of empty list in python? - kích thước của danh sách trống trong python là gì?

Câu trả lời hiện đang được chấp nhận của Varunl

 >>> l = [None] * 10
 >>> l
 [None, None, None, None, None, None, None, None, None, None]

Hoạt động tốt cho các loại không tham chiếu như số. Thật không may nếu bạn muốn tạo một danh sách danh sách, bạn sẽ gặp phải các lỗi tham khảo. Ví dụ trong Python 2.7.6:

>>> a = [[]]*10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(0)
>>> a
[[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
>>> 

Như bạn có thể thấy, mỗi phần tử đang chỉ vào cùng một đối tượng danh sách. Để khắc phục điều này, bạn có thể tạo một phương thức sẽ khởi tạo từng vị trí thành một tham chiếu đối tượng khác.

def init_list_of_objects(size):
    list_of_objects = list()
    for i in range(0,size):
        list_of_objects.append( list() ) #different object reference each time
    return list_of_objects


>>> a = init_list_of_objects(10)
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(0)
>>> a
[[0], [], [], [], [], [], [], [], [], []]
>>> 

Có khả năng là một cách Python mặc định, tích hợp trong việc thực hiện việc này (thay vì viết một hàm), nhưng tôi không chắc nó là gì. Sẽ rất vui khi được sửa chữa!

Chỉnh sửa: Đó là [ [] for _ in range(10)]

Thí dụ :

>>> [ [random.random() for _ in range(2) ] for _ in range(5)]
>>> [[0.7528051908943816, 0.4325669600055032], [0.510983236521753, 0.7789949902294716], [0.09475179523690558, 0.30216475640534635], [0.3996890132468158, 0.6374322093017013], [0.3374204010027543, 0.4514925173253973]]

Bài đăng này sẽ thảo luận về cách tạo một danh sách trống với kích thước nhất định trong Python.

Để gán bất kỳ giá trị nào cho một danh sách bằng toán tử gán tại vị trí i, a[i] = x, kích thước danh sách của bạn phải ít nhất là i+1. Nếu không, nó sẽ tăng một IndexError, như hình dưới đây:

if__name__=='__main__':__name__=='__main__':

    a=[]a =[]

    a[0]=1a[0]= 1

    print(a)print(a)

& nbsp; & nbsp; & nbsp; & nbsp;# nâng cao indexError: Danh sách chỉ mục gán ra khỏi phạm vi# raise IndexError: list assignment index out of range

Tải xuống mã

& nbsp; Giải pháp là tạo một danh sách trống của None khi các mục danh sách không được biết trước. Điều này có thể dễ dàng thực hiện, như hình dưới đây:
The solution is to create an empty list of None when list items are not known in advance. This can be easily done, as shown below:

if__name__=='__main__':__name__=='__main__':

    a=[None]*5a =[None]*5

    print(a)print(a)

& nbsp; & nbsp; & nbsp; & nbsp;# in [none, none, none, none, none]# prints [None, None, None, None, None]

Tải xuống & nbsp; & nbsp; mã

& nbsp; Mã trên sẽ tạo một danh sách kích thước

>>> a = [[]]*10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(0)
>>> a
[[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
>>> 
0, trong đó mỗi vị trí được khởi tạo bởi None. None thường được sử dụng trong Python để thể hiện sự vắng mặt của một giá trị.
The above code will create a list of size
>>> a = [[]]*10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(0)
>>> a
[[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
>>> 
0, where each position is initialized by None. None is frequently used in Python to represent the absence of a value.

& nbsp; Một giải pháp khác để tạo danh sách trống với kích thước nhất định là sử dụng danh sách toàn diện:
Another alternative for creating empty lists with a given size is to use list comprehensions:

if__name__=='__main__':__name__=='__main__':

    a=[Noneforxinrange(5)]a =[Noneforxinrange(5)]

    print(a)print(a)

& nbsp; & nbsp; & nbsp; & nbsp;# in [[], [], [], [], []]# prints [[], [], [], [], []]

Tải xuống & nbsp; & nbsp; mã

Giải pháp nào để sử dụng?

Giải pháp đầu tiên hoạt động tốt cho các loại không tham chiếu như số. Nhưng bạn có thể gặp lỗi tham chiếu trong một số trường hợp. Ví dụ:

>>> a = [[]]*10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(0)
>>> a
[[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
>>> 
3 sẽ dẫn đến danh sách chứa cùng một đối tượng danh sách được lặp lại
>>> a = [[]]*10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[0].append(0)
>>> a
[[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
>>> 
0 lần.

if__name__=='__main__':__name__=='__main__':

    a=[[]]*5a =[[]]*5

    a[0].append(1)a[0].append(1)

    print(a)print(a)

& nbsp; & nbsp; & nbsp; & nbsp;# in [[1], [1], [1], [1], [1]]# prints [[1], [1], [1], [1], [1]]

Tải xuống & nbsp; & nbsp; mã

& nbsp; Giải pháp cho vấn đề này là sử dụng các toàn bộ danh sách như thế này:
The solution to this problem is using list comprehensions like this:

if__name__=='__main__':__name__=='__main__':

    a=[[]forxinrange(5)]a =[[]forxin range(5)]

    a[0].append(1)a[0].append(1)

    print(a)print(a)

& nbsp; & nbsp; & nbsp; & nbsp;# in [[1], [], [], [], []]# prints [[1], [], [], [], []]

Tải xuống & nbsp; & nbsp; mã

Đó là tất cả về việc tạo ra một danh sách trống với kích thước đã cho trong Python.

& nbsp; cũng xem:
Also See:

Khởi tạo một danh sách có cùng giá trị trong Python

Cảm ơn vì đã đọc.

Vui lòng sử dụng trình biên dịch trực tuyến của chúng tôi để đăng mã trong các nhận xét bằng C, C ++, Java, Python, JavaScript, C#, PHP và nhiều ngôn ngữ lập trình phổ biến hơn.

Như chúng tôi? Giới thiệu chúng tôi với bạn bè của bạn và giúp chúng tôi phát triển. Mã hóa hạnh phúc :) :)


Danh sách trống trong Python là gì?

Trong Python, một danh sách trống được định nghĩa là danh sách không có phần tử hoặc mục trong danh sách. Để xác định một danh sách trống trong Python, có hai cách để thực hiện việc này và chúng được thực hiện bằng cách sử dụng khung vuông [] hoặc bằng cách sử dụng một hàm tạo danh sách như danh sách ().the list with no elements or items on the list. To define an empty list in Python, there are two ways to do this, and they are done either by using square bracket [] or by using a list constructor such as list().

Kích thước của danh sách trong Python là gì?

Kỹ thuật 1: Phương pháp Len () để tìm độ dài của một danh sách trong Python. Python đã có phương thức xây dựng-Len () để tìm kích thước của danh sách, tức là độ dài của danh sách. Phương thức Len () chấp nhận một sự khác biệt như một đối số và nó được tính và trả về số lượng các phần tử có trong danh sách.len() to find the size of the list i.e. the length of the list. The len() method accepts an iterable as an argument and it counts and returns the number of elements present in the list.

Độ dài danh sách trống là bao nhiêu?

Danh sách là một loại dữ liệu được sử dụng để lưu trữ các mục không đồng nhất.Do đó, một danh sách có thể chứa một số loại dữ liệu như số nguyên, chuỗi và đối tượng.Danh sách trống là một danh sách không có yếu tố, do đó độ dài của một danh sách trống là 0 và bối cảnh bool của một danh sách trống là sai.0, and the bool context of an empty list is false.

Có giới hạn kích thước cho danh sách Python không?

Theo mã nguồn, kích thước tối đa của danh sách là py_ssize_t_max/sizeof (PyObject*).Trên một hệ thống 32bit thông thường, đây là (4294967295 /2) / 4 hoặc 536870912. Do đó, kích thước tối đa của danh sách Python trên hệ thống 32 bit là 536.870.912 phần tử.the maximum size of a list is PY_SSIZE_T_MAX/sizeof(PyObject*) . On a regular 32bit system, this is (4294967295 / 2) / 4 or 536870912. Therefore the maximum size of a python list on a 32 bit system is 536,870,912 elements.