2013-11-22 51 views
10

Vì vậy, nếu tôi có danh sách được gọi là myList, tôi sử dụng len(myList) để tìm số phần tử trong danh sách đó. Khỏe. Nhưng làm cách nào để tìm số danh sách trong danh sách?Cách lấy danh sách các danh sách trong python

text = open("filetest.txt", "r") 
myLines = text.readlines() 
numLines=len(myLines) 
print numLines 

Tệp văn bản ở trên được sử dụng có 3 dòng gồm 4 phần tử được phân tách bằng dấu phẩy. Biến numLines in ra là '4' không phải '3'. Vì vậy, len(myLines) đang trả về số lượng thành phần trong mỗi danh sách không phải là độ dài của danh sách danh sách.

Khi tôi in myLines[0] tôi nhận được danh sách đầu tiên, myLines[1] danh sách thứ hai, vv Nhưng len(myLines) không chỉ cho tôi số lượng danh sách, mà nên là giống như 'số dòng'.

Tôi cần xác định số lượng dòng đang được đọc từ tệp.

+5

Trong code của bạn, bạn có một danh sách các dòng (chuỗi) . không phải danh sách các danh sách. Và con trăn sẽ vui vẻ đếm các dòng trống ... Bạn đã kiểm tra để chắc chắn rằng bạn không có bất kỳ dòng sản phẩm nào? – mgilson

+0

'len (myLines)' sẽ cung cấp cho bạn số lượng đối tượng bên trong danh sách đó bất kể chúng là danh sách, dicts hay chuỗi. – jramirez

+0

Mã của bạn hoạt động hoàn toàn tốt. Cung cấp cho chúng tôi tệp như vậy. – tMJ

Trả lời

1

"Tệp văn bản ở trên được sử dụng có 3 dòng gồm 4 phần tử được phân tách bằng dấu phẩy. Biến numLines in ra là '4' không phải '3' .Vì vậy, len (myLines) trả về số lượng phần tử trong mỗi danh sách không độ dài của danh sách danh sách. "

Có vẻ như bạn đang đọc trong một .csv với 3 hàng và 4 cột. Nếu trường hợp này xảy ra, bạn có thể tìm thấy số hàng và đường bằng cách sử dụng phương thức .split():

text = open("filetest.txt", "r").read() 
myRows = text.split("\n")  #this method tells Python to split your filetest object each time it encounters a line break 
print len(myRows)    #will tell you how many rows you have 
for row in myRows: 
    myColumns = row.split(",") #this method will consider each of your rows one at a time. For each of those rows, it will split that row each time it encounters a comma. 
    print len(myColumns)   #will tell you, for each of your rows, how many columns that row contains 
15

Điều này sẽ lưu dữ liệu vào danh sách danh sách.

text = open("filetest.txt", "r") 
data = [ ] 
for line in text: 
    data.append(line.strip().split()) 

print "number of lines ", len(data) 
print "number of columns ", len(data[0]) 

print "element in first row column two ", data[0][1] 
0

nếu tên danh sách của bạn là listlen thì chỉ cần nhập len(listlen). Điều này sẽ trả về kích thước của danh sách của bạn trong python.

0

Phương thức len() trả về số phần tử trong danh sách.

list1, list2 = [123, 'xyz', 'zara'], [456, 'abc'] 
    print "First list length : ", len(list1) 
    print "Second list length : ", len(list2) 

Khi chúng tôi chạy trên chương trình, nó tạo ra kết quả sau -

danh sách đầu tiên dài: 3 danh sách thứ hai dài: 2

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