cuốn sách gpt4 ai đã làm

Trình tạo Python - thay đổi kết quả cuối cùng?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 10:58:01 25 4
mua khóa gpt4 Nike

Tôi đang cố gắng quyết định giữa hai định nghĩa sau đây về trình tạo của mình. Cái nào tốt hơn? Cái nào "nhiều Pythonic" hơn? Dù sao, có cách nào để giảm thiểu những nhược điểm của mỗi?

def myGenerator1(howMany):
kết quả = [0,0,0]
mang lại kết quả
cho tôi trong phạm vi(howMany)
sửa đổiListInPlace (kết quả)
mang lại kết quả

cho val trong myGenerator1(1000):
useValThenForgetIt(val)

def myGenerator2(howMany):
kết quả = (0,0,0)
mang lại kết quả
cho tôi trong phạm vi(howMany)
kết quả = createNewUpdatedTuple(result)
mang lại kết quả

cho val trong myGenerator2(1000):
useValThenForgetIt(val)

Cái đầu tiên sửa đổi giá trị được trình tạo trả về, có thể làm rối mã gọi điện mà tôi chưa lường trước được. Trong trường hợp này, cái thứ hai tạo ra 1000 bộ rác, nhiều hơn nếu tôi tăng "howMany" (điều mà tôi có thể làm).

Vòng lặp tôi đưa ra chỉ là cách sử dụng máy phát điện hiện tại của tôi. Tôi không认为Tôi sẽ lưu các giá trị mà nó tạo ra, nhưng đó là một tiện ích có thể hữu ích ở nơi khác.

câu trả lời hay nhất

Sử dụng thư viện chuẩn làm hướng dẫn,itertools Các hàm kết hợp trong mô-đun đều trả về các bộ dữ liệu, mặc dù thuật toán cơ bản là thuật toán đột biến tại chỗ. Ví dụ, xem itertools.permutations mã số.

Thiết kế này (trả về các bộ dữ liệu thay vì danh sách) đã được chứng minh là đáng tin cậy. Tôi lo lắng rằng phương pháp danh sách đột biến sẽ tạo ra một số lỗi khó tìm, tùy thuộc vào những gì người gọi thực hiện với giá trị trả về của trình vòng lặp.

Một suy nghĩ khác. Tôi sẽ không lo lắng quá nhiều về việc "tạo ra hàng nghìn bộ dữ liệu rác" cho kết quả không được sử dụng. Việc triển khai bộ dữ liệu của Python rất hiệu quả trong việc sử dụng lại các bộ dữ liệu đã được xử lý trước đó (bằng cách sử dụng một tập hợp các danh sách trống, nó có thể tạo một bộ dữ liệu mới từ một bộ dữ liệu đã sử dụng trước đó mà không cần gọi bộ cấp phát bộ nhớ). Do đó, phiên bản bộ dữ liệu hoạt động tốt hoặc thậm chí tốt hơn phiên bản danh sách.

Giới thiệu về trình tạo Python - thay đổi kết quả cuối cùng? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8147214/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress