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

Trình tạo Python để liệt kê

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

Tôi có một trình tạo Python lexg, tạo ra một danh sách trên mỗi lần lặp. Mã này có vẻ theo kiểu truyền thống for hoạt động theo nghĩa vòng tròn, tức là

for i in lexg(2,2): print(i)

产生:

[2, 0]
[1, 1]
[1, 0]
[0, 2]
[0, 1]
[0, 0]

nhưng dường như phá vỡ sự hiểu biết về danh sách, nghĩa là cả hai

danh sách(lexg(2,2))

[i cho tôi trong lexg(2,2)]

生产

[[0, 0], 
[0, 0],
[0, 0],
[0, 0],
[0, 0],
[0, 0]]

Tuy nhiên, tôi hy vọng danh sách(lexg(2,2)) 产生

[[2, 0]
[1, 1]
[1, 0]
[0, 2]
[0, 1]
[0, 0]]

lexg Mã là:

def lexg( n, d ):
số mũ = [0] * n;
vòng lặp def( m, TotalDegree ):
r = đảo ngược( phạm vi( 0, d - TotalDegree + 1 ) );
cho j trong r:
số mũ[nm] = j;
nếu m==1:
số mũ năng suất;
khác:
cho x trong looper( m-1, TotalDegree+j ): mang lại x
vòng lặp trả về(n, 0);

Điều gì gây ra đầu ra trống?

Chỉnh sửa/Giải pháp

Như bạn có thể thấy bên dưới, vấn đề là trình tạo trả về cùng một danh sách ở mỗi bước. Vì vậy, một giải pháp là sao chép danh sách trước khi quay lại. Ví dụ, tôi có lexg của số mũ năng suất; Thay đổi dòng thành danh sách năng suất (số mũ);, nhờ đó giải quyết được vấn đề.

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

正如 lừa dối Như đã chỉ ra, bạn kết thúc với một danh sách các danh sách trỏ đến cùng một phiên bản

Để rõ ràng hơn, hãy thử

a = danh sách(lexg(2,2))
a[0][0] = 3
in (a)

结果

[[3, 0], [3, 0], [3, 0], [3, 0], [3, 0], [3, 0]]

Về các trình tạo Python sẽ được liệt kê, 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/38974429/

29 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