2011-08-28 38 views
13

Tôi chỉ có một số lượng kỳ lạ của một kịch bản python:[...] (dấu ba chấm) trong danh sách có nghĩa là gì trong Python?

[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]] 

Kết quả phải là một danh sách liệt kê của các bộ. Nhưng tôi không biết tại sao [...] lại xuất hiện.

[...] có nghĩa là gì?

Tôi không nghĩ rằng danh sách trống của nó, vì danh sách trống là []. Những bản sao này có lẽ là trùng lặp không?

+2

Mã là gì? –

+0

Điều này có thể giúp - http://stackoverflow.com/questions/118370/how-do-you-use-the-ellipsis-slicing-syntax-in-python – arunkumar

+0

@arunkumar: 'repr' của' Dấu ba chấm' là ' "Dấu ba chấm". –

Trả lời

25

Đây là tham chiếu đệ quy. Danh sách của bạn chứa chính nó, hoặc ít nhất có một số loại chu kỳ.

Ví dụ:

x = [] 
x.insert(0, x) 
# now the repr(x) is '[[...]]'. 

Việc xây dựng trong repr cho các danh sách phát hiện tình trạng này và không cố gắng để recurse vào danh sách phụ (như bình thường), bởi vì đó sẽ dẫn đến đệ quy vô hạn.

Lưu ý rằng ... không nhất thiết phải cho bạn biết danh sách được gọi:

y, z = [], [] 
x = [y, z] 
y.insert(0, z) 
z.insert(0, y) 
# looks the same as it would if y contained y and z contained z. 

nên repr là không thực sự là một định dạng serialization hoàn chỉnh cho danh sách.

Vì lý do bạn nhận được chúng: chúng tôi không phải là linh hồn và không thể khắc phục sự cố với mã của bạn trừ khi chúng tôi thấy mã.

Các vấn đề liên quan