2012-09-06 35 views
5

My mã Python tạo ra một danh sách mọi lúc nó bẹ:làm thế nào để tạo ra một danh sách liệt kê

list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1) 

Nhưng tôi muốn lưu mỗi người - Tôi cần một danh sách liệt kê phải không?

Vì vậy, tôi đã cố gắng:

list[i] = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1) 

Nhưng Python hiện nay nói với tôi rằng "danh sách" không được định nghĩa. Tôi không chắc làm thế nào tôi đi về việc xác định nó. Ngoài ra, là một danh sách các danh sách giống như một mảng ??

Cảm ơn bạn!

+0

Vui lòng hiển thị toàn bộ vòng lặp của bạn, không chỉ dòng thực hiện bài tập. –

+7

đó là ý tưởng BAD để tạo biến có cùng tên với nội trang dựng sẵn. – tMC

+0

Mảng không phải là danh sách các danh sách. "mảng" có ý nghĩa khác nhau trong các ngôn ngữ khác nhau (trong C một mảng không thể được thay đổi kích cỡ, trong Perl có thể) nhưng trong hầu hết trường hợp nó là tương tự như một danh sách Python thường xuyên. –

Trả lời

4

Sử dụng phương pháp append, ví dụ:

lst = [] 
line = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1) 
lst.append(line) 
+6

-1 để sử dụng tên nội trang 'danh sách'. Tôi đề nghị 'lst'. –

+1

Cảm ơn người đàn ông. Tôi chỉ sử dụng "danh sách" làm ví dụ, nhưng tôi thấy rằng tôi nên đã sử dụng cái gì khác. Vì vậy, tôi đã làm việc này như bạn đề nghị. Bây giờ khi tôi in danh sách [0] hoặc danh sách [7] vv, tôi nhận được câu trả lời đúng. Nhưng khi tôi cố gắng và in toàn bộ điều với danh sách in, tôi nhận được một readout tìm kiếm kỳ lạ với từ "mảng" và "dtype" trong đó. – user1551817

15

Bạn muốn tạo một danh sách rỗng, sau đó thêm các danh sách được tạo ra với nó. Điều này sẽ cung cấp cho bạn danh sách các danh sách. Ví dụ:

>>> l = [] 
>>> l.append([1,2,3]) 
>>> l.append([4,5,6]) 
>>> l 
[[1, 2, 3], [4, 5, 6]] 
2

Trước hết không sử dụng list như một name biến mà là một hàm dựng sẵn.

Tôi không siêu rõ ràng về những gì bạn đang yêu cầu (một bối cảnh nhiều hơn chút sẽ giúp), nhưng có lẽ đây là helpful-

my_list = [] 
my_list.append(np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)) 
my_list.append(np.genfromtxt('temp2.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)) 

Điều đó sẽ tạo ra một danh sách (một loại mảng có thể thay đổi trong python) được gọi là my_list với đầu ra của phương pháp np.getfromtext() trong 2 chỉ mục đầu tiên.

Đầu tiên có thể được tham chiếu với my_list[0] và lần thứ hai với my_list[1]

4

Tạo danh sách của bạn trước khi vòng lặp của bạn, ngược lại nó sẽ được tạo ra mỗi vòng lặp.

>>> list1 = [] 
>>> for i in range(10) : 
... list1.append(range(i,10)) 
... 
>>> list1 
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9], [5, 6, 7, 8, 9], [6, 7, 8, 9], [7, 8, 9], [8, 9], [9]] 
Các vấn đề liên quan