2010-11-08 5 views
5

Cú pháp thích hợp để thêm một bộ dữ liệu được phân loại vào danh sách là gì?Gắn các bộ dữ liệu vào danh sách

Ví dụ, nếu tôi đã có hai danh sách:

>>> a = [(1,2,3),(4,5,6)] 
>>> b = [(0,0)] 

Sau đó, tôi mong chờ những điều sau đây để công việc:

>>> b.append((a[0][0],a[0,2])) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: list indices must be integers, not tuple 

Hơn nữa, khi nó thông báo với tôi rằng chỉ số phải là số nguyên, làm thế nào đến những công việc này?

>>> b.append((7,7)) 
>>> b 
[(0, 0), (7, 7)] 
+0

Bạn có thể làm rõ chỉnh sửa của mình để nói rằng lỗi đánh máy là vấn đề cơ bản không? Hiện tại, không rõ liệu bản chỉnh sửa của bạn có đang làm rõ câu hỏi hoặc xác định nguyên nhân gốc của lỗi hay không. –

Trả lời

4

bạn đã cố gắng làm điều này:

(a[0][0],a[0,2]) 
      ^^^ 

này cũng giống như thực hiện:

(a[0][0],a[(0,2)]) 

mà như các lỗi nói: chỉ số danh sách phải là số nguyên, không tuple

nếu tôi không nhầm, tôi nghĩ bạn muốn làm:

b.append((a[0][0],a[0][2])) 
0

một [0,2] là vấn đề của bạn.

Nó không phàn nàn về phụ lục, nó cho bạn biết rằng [0,2] không thể được sử dụng làm chỉ mục cho danh sách a.

1

Vấn đề của bạn là thế này:

b.append((a[0][0],a[0,2])) 
        ^

Bạn cố gắng sử dụng các chỉ số tuple không tồn tại [0, 2] khi bạn có ý nghĩa [0][2]

1

Các chỉ số phải là số nguyên. Nó chỉ là một lỗi đánh máy mà bạn có a[0,2] thay vì a[0][2]. [0,2] là một nỗ lực để chỉ mục theo bộ.