2011-08-14 30 views
11

Tôi đang tự hỏi làm thế nào để đặt một tuple vào một mảng? hoặc là nó tốt hơn để sử dụng mảng trong mảng cho việc thiết kế của chương trình chứ không phải là một tuple trong một mảng? hãy tư vấn cho tôi. cảm ơn bạnTôi có thể đặt tuple vào một mảng trong python không?

+3

Bạn có nghĩa là phải thực hiện một loạt các bộ dữ liệu? Hoặc để tạo một tuple * thành * một mảng? – Nate

+5

Bạn có nghĩa là 'danh sách' trên một' mảng' thực tế không? –

+0

tôi chỉ muốn lưu trữ giá trị như văn bản và ID vào tuple hoặc danh sách nhưng tôi muốn kiểm tra nó với nhau cho vòng lặp. thay vì sử dụng vòng lặp for trong vòng lặp for. tôi đang nghĩ đến việc sử dụng mảng trong mảng. Nhưng đã khá bối rối cho dù tôi nên sử dụng tuples trong danh sách hoặc danh sách trong một danh sách. Tôi không giỏi thiết kế cấu trúc của thiết kế vì vậy tôi xin lời khuyên và ý kiến ​​ – iCezz

Trả lời

14

Một điều cần lưu ý là một tuple là không thay đổi. Điều này có nghĩa là khi nó được tạo, bạn không thể sửa đổi nó tại chỗ. Mặt khác, list có thể thay đổi - nghĩa là bạn có thể thêm các phần tử, xóa các phần tử và thay đổi các phần tử tại chỗ. Danh sách có thêm chi phí, do đó, chỉ sử dụng danh sách nếu bạn cần sửa đổi các giá trị.

Bạn có thể tạo một danh sách các hàng:

>>> list_of_tuples = [(1,2),(3,4)] 
>>> list_of_tuples 
[(1, 2), (3, 4)] 

hoặc một danh sách liệt kê:

>>> list_of_lists = [[1, 2], [3, 4]] 
>>> list_of_lists 
[[1, 2], [3, 4]] 

Sự khác biệt là bạn có thể thay đổi các yếu tố trong danh sách liệt kê:

>>> list_of_lists[0][0] = 7 
>>> list_of_lists 
[[7, 2], [3, 4]] 

nhưng không có danh sách bộ dữ liệu:

>>> list_of_tuples[0][0] = 7 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'tuple' object does not support item assignment 

Để duyệt qua danh sách các bộ:

>>> for (x,y) in list_of_tuples: 
... print x,y 
... 
1 2 
3 4 
+0

tôi chỉ muốn lưu trữ giá trị như văn bản và ID vào tuple hoặc danh sách nhưng tôi muốn kiểm tra nó với một vòng lặp khác. thay vì sử dụng vòng lặp for trong vòng lặp for. tôi đang nghĩ đến việc sử dụng mảng trong mảng. Nhưng đã khá bối rối cho dù tôi nên sử dụng tuples trong danh sách hoặc danh sách trong một danh sách. Tôi không giỏi thiết kế cấu trúc của thiết kế, do đó tôi yêu cầu tư vấn và ý kiến ​​ – iCezz

+0

@iCezz Tôi đã thêm một ví dụ về cách bạn có thể dễ dàng lặp qua danh sách các bộ dữ liệu mà không cần nhiều vòng lặp. – jterrace

+0

tôi nghĩ rằng đây là một ý tưởng hay, trong trường hợp này tôi có thể lấy giá trị bên trong một tuple một cách dễ dàng và nhanh hơn mà không phải lo lắng rằng dữ liệu sẽ bị thay đổi. cảm ơn lần nữa – iCezz

6

nếu bạn đang nói về list, bạn có thể đặt bất cứ điều gì vào đó, các loại thậm chí khác nhau:

l=[10,(10,11,12),20,"test"] 

l[0] = (1,2,3) 
l.append((4,5)) 
l.extend((21,22)) #this one adds each element from the tuple 

nếu bạn có ý nghĩa array, không trăn array s không hỗ trợ các bộ.

+0

cảm ơn lời khuyên của bạn. đây là những gì tôi có nghĩa là tuple trong một mảng. cơ bản nó lưu trữ nhiều bộ dữ liệu trong một danh sách. nhưng tôi nghĩ rằng tuples không có phương pháp do đó tôi tin rằng nó sẽ thêm vào danh sách. Cảm ơn bạn đã chia sẻ – iCezz

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