Hướng dẫn python initialize list of size n with 0 - python khởi tạo danh sách kích thước n với 0

$python 2.7.8

from timeit import timeit
import numpy

timeit("list(0 for i in xrange(0, 100000))", number=1000)
> 8.173301935195923

timeit("[0 for i in xrange(0, 100000)]", number=1000)
> 4.881675958633423

timeit("[0] * 100000", number=1000)
> 0.6624710559844971

timeit('list(itertools.repeat(0, 100000))', 'import itertools', number=1000)
> 1.0820629596710205

Bạn nên sử dụng [0] * n để tạo danh sách với số không ____10.

Xem tại sao [] nhanh hơn danh sách ()

Mặc dù vậy, có một gotcha, cả

a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
1 và [0] * n sẽ tạo ra các danh sách có các yếu tố đề cập đến cùng một
a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
3. Đây không phải là vấn đề với các đối tượng bất biến như số nguyên hoặc chuỗi nhưng nếu bạn cố gắng tạo danh sách các đối tượng có thể thay đổi như danh sách danh sách (
a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
4) thì tất cả các yếu tố sẽ đề cập đến cùng một đối tượng.

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

[0] * n sẽ tạo danh sách ngay lập tức trong khi

a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
6 có thể được sử dụng để tạo danh sách uể oải khi được truy cập lần đầu tiên.

Nếu bạn đang xử lý lượng dữ liệu thực sự lớn và vấn đề của bạn không cần độ dài danh sách hoặc nhiều loại dữ liệu trong danh sách, tốt hơn là sử dụng mảng

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

timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125

a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
7 Mảng cũng sẽ tiêu thụ ít bộ nhớ hơn.

Bạn không thể gán các mục vào danh sách tại các vị trí không tồn tại. Điều này là do các danh sách được lập chỉ mục từ các vị trí chỉ mục bằng 0 và mới mỗi lần một mục được thêm vào danh sách.

Điều này có nghĩa là nếu bạn muốn thêm các mục vào một vị trí cụ thể trong danh sách, cần phải có giá trị giữ chỗ ở vị trí đó.

Hướng dẫn python initialize list of size n with 0 - python khởi tạo danh sách kích thước n với 0

Tìm Bootcamp của bạn phù hợp

  • Karma nghề nghiệp phù hợp với bạn với bootcamp công nghệ hàng đầu
  • Truy cập các học bổng và khóa học chuẩn bị độc quyền

Chọn mối quan tâm của bạn họ Tên điện thoại Email Tên của bạn
First name

Last name

Email

Phone number

Bằng cách tiếp tục, bạn đồng ý với các điều khoản dịch vụ và chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận được các ưu đãi và cơ hội từ Karma nghề nghiệp qua điện thoại, tin nhắn văn bản và email.

Trong hướng dẫn này, chúng tôi thảo luận về cách khởi tạo một danh sách kích thước

a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
0 trong Python. Chúng tôi đi qua một ví dụ về cách thực hiện việc này để bạn có thể khởi tạo danh sách với kích thước tùy chỉnh trong các chương trình của bạn.

Python: Khởi tạo danh sách kích thước N bằng cách sử dụng phép nhân

Chúng tôi sẽ xây dựng một ứng dụng bảng xếp hạng theo dõi vị trí của những người chiến thắng trong một giải đấu toán học. Bảng xếp hạng này sẽ hiển thị tám sinh viên cuối cùng trong giải đấu.

Học sinh được thêm vào theo thứ tự giảm dần. Điều này là do sinh viên đầu tiên trong danh sách là người chiến thắng và học sinh thứ tám ở vị trí thứ tám.

Để bắt đầu, hãy tạo một danh sách trống trong Python:

leaderboard = [None] * 8
print(leaderboard)

Mã này tạo ra một đối tượng danh sách với tám giá trị. Mỗi giá trị trong danh sách sẽ bằng với không có.

Mã của chúng tôi trả về danh sách các giá trị không có của chúng tôi:

[None, None, None, None, None, None, None, None]

Giá trị không thể thay thế với bất kỳ giá trị mặc định nào bạn muốn. Chẳng hạn, bạn có thể làm cho mỗi giá trị mặc định thành một chuỗi trống (phạm vi), số 0 (0) hoặc một cái gì đó khác.

Trận tứ kết vừa hoàn thành và hai thí sinh đã bị loại. Các thí sinh sau đây có thể được thêm vào bảng xếp hạng của chúng tôi:

  • Chad (vị trí thứ bảy)
  • Eileen (vị trí thứ tám)

Để thêm những sinh viên này vào danh sách của chúng tôi, chúng tôi sử dụng ký hiệu bài tập:

leaderboard[7] = "Eileen"
leaderboard[6] = "Chad"

Chúng tôi đặt giá trị của mục ở vị trí 7 thành Eileen và giá trị ở vị trí 6 thành Chad. Điều này là do danh sách được lập chỉ mục từ số không. Mục đầu tiên trong danh sách của chúng tôi có giá trị 0 và mục cuối cùng có giá trị 7. Điều này có nghĩa là Eileen là lần cuối cùng trong danh sách của chúng tôi và Chad đứng thứ hai từ cuối cùng.

Tiếp theo, hãy để Lừa viết một vòng lặp For For For, hiển thị tất cả các vị trí trong bảng xếp hạng của chúng tôi và những người hiện đang giữ vị trí đó:

for l in range(0, len(leaderboard)):
		 if leaderboard[l] != None:
		         value = leaderboard[l]
	     else:
		         value = "TBD"

	     print("{}: {}".format(l + 1, value))

Chúng tôi sử dụng một câu lệnh RANGE () để tạo danh sách các giá trị giữa 0 và độ dài của danh sách bảng xếp hạng trên mạng. Điều này cho phép chúng tôi lặp lại danh sách các sinh viên trong bảng xếp hạng trong khi theo dõi từng vị trí.

Trong vòng lặp của chúng tôi, chúng tôi kiểm tra xem giá trị tại một vị trí cụ thể trong danh sách có bằng không. Nếu không phải, giá trị tại vị trí đó được gán cho giá trị biến đổi. Mặt khác, giá trị của TBD TBD được gán cho biến có giá trị.

Tiếp theo, chúng tôi in ra giá trị của biến giá trị trên mạng. Chúng tôi cũng in ra giá trị của Lọ cộng với một. Điều này là do các danh sách được lập chỉ mục từ 0 và để hiển thị thứ hạng, chúng ta nên thêm một vào giá trị đó. Nếu không, bảng xếp hạng của chúng tôi sẽ bắt đầu từ số 0.

Hãy cùng chạy mã của chúng tôi và xem điều gì sẽ xảy ra:

[None, None, None, None, None, None, None, None]
1: TBD
2: TBD
3: TBD
4: TBD
5: TBD
6: TBD
7: Chad
8: Eileen

Mã của chúng tôi đầu tiên in ra một danh sách không có giá trị. Tiếp theo, mã của chúng tôi gán các giá trị cho hai mục cuối cùng trong danh sách của chúng tôi. Cuối cùng, mã của chúng tôi in ra các vị trí trong bảng xếp hạng của chúng tôi.

Python: Khởi tạo danh sách kích thước n bằng phạm vi ()

Chúng tôi có thể khởi tạo danh sách kích thước

a = [[]] * 10
a[0].append(1)
a
> [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
0 bằng cách sử dụng câu lệnh
timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1. Sự khác biệt giữa việc sử dụng câu lệnh
timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1 và phương thức không có là câu lệnh
timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1 sẽ tạo ra một danh sách các giá trị giữa hai số. Theo mặc định,
timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1 tạo một danh sách từ 0 đến một giá trị cụ thể.

Hãy để khởi tạo danh sách bảng xếp hạng của chúng tôi bằng cách sử dụng câu lệnh

timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1:

leaderboard = list(range(8))
print(leaderboard)

Câu lệnh

timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1 tạo ra một chuỗi các giá trị từ 0 đến 7. Chúng tôi chuyển đổi chuỗi đó thành một danh sách để chúng tôi có thể lặp lại nó. Điều này chỉ cần thiết trong Python 3.

Mã của chúng tôi trả về một danh sách mới với tám giá trị:

Sự kết luận

Bạn có thể khởi tạo danh sách kích thước tùy chỉnh bằng cách sử dụng nhân hoặc câu lệnh

timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1.

Phương thức nhân là tốt nhất nếu bạn muốn khởi tạo một danh sách có cùng giá trị. Câu lệnh

timeit('numpy.zeros(100000, numpy.int)', 'import numpy', number=1000)
> 0.057849884033203125
1 là một lựa chọn tốt nếu bạn muốn một danh sách chứa các giá trị trong một phạm vi cụ thể.

Bây giờ bạn có các kỹ năng bạn cần để khởi tạo một danh sách python có kích thước n như một chuyên gia!

Làm thế nào để bạn khởi tạo một danh sách trong Python với 0?

Làm thế nào chúng ta có thể khởi tạo danh sách với số không trong Python ?..
Bằng cách sử dụng * toán tử ..
Bằng cách sử dụng hàm itertools.repeat () ..
Bằng cách sử dụng sự hiểu biết của máy phát ..
Bằng cách sử dụng danh sách hiểu ..

Làm thế nào để bạn khởi tạo một danh sách trống có kích thước n trong Python?

Để tạo một danh sách các phần tử n trình giữ chỗ, nhân danh sách một phần tử trình giữ chỗ duy nhất với n. Ví dụ: sử dụng [none] * 5 để tạo danh sách [không có, không có, không, không, không] với năm yếu tố không có.multiply the list of a single placeholder element with n . For example, use [None] * 5 to create a list [None, None, None, None, None] with five elements None .

Làm thế nào để bạn lập một danh sách các số từ N đến 0 trong Python?

Sử dụng hàm phạm vi () để tạo danh sách các số từ 1 đến N. hàm phạm vi () được sử dụng rất phổ biến trong Python.Nó trả về một chuỗi giữa hai số được đưa ra trong các đối số hàm. to Create a List of Numbers From 1 to N. The range() function is very commonly used in Python. It returns a sequence between two numbers given in the function arguments.

Làm thế nào để bạn khởi tạo một danh sách các kích thước n?

Chúng ta có thể khởi tạo một danh sách kích thước N bằng cách sử dụng câu lệnh RANGE ().Sự khác biệt giữa việc sử dụng câu lệnh RANGE () và phương thức không là câu lệnh RANGE () sẽ tạo danh sách các giá trị giữa hai số.Theo mặc định, phạm vi () tạo một danh sách từ 0 đến một giá trị cụ thể.using a range() statement. The difference between using a range() statement and the None method is that a range() statement will create a list of values between two numbers. By default, range() creates a list from 0 to a particular value.