Ngày của riêng nó, nó sẽ là một lỗi cú pháp. Trong dấu ngoặc đơn, đó là một generator expression:
(randrange(10**10) for i in range(100))
trả về một máy phát điện mà sẽ mang lại các kết quả của 100 cuộc gọi đến randrange(10**10)
, cùng một lúc.
Bên trong dấu ngoặc vuông, đó là một list comprehension:
[randrange(10**10) for i in range(100)]
trả về một danh sách 100 số kết quả từ một cuộc gọi đến randrange(10**10)
mỗi.
Lợi thế của biểu thức máy phát trên danh sách hiểu là nó được đánh giá một cách lười biếng, vì vậy bạn không phải xây dựng và giữ toàn bộ danh sách trong bộ nhớ (đặc biệt phù hợp với máy phát vô hạn, rất lớn).
Nguồn
2012-05-09 09:06:14
Đó là bên trong một [] vì vậy tôi đoán nó là một danh sách hiểu .. – KodeSeeker