पायथन में सूचियों की सूची की लंबाई कैसे प्राप्त करें

इसलिए, अगर मेरे पास MyList नामक एक सूची है, तो मैं उस सूची में तत्वों की संख्या को खोजने के लिए len (myList) का उपयोग करता हूं। ठीक। लेकिन मुझे सूची में सूचियों की संख्या कैसे मिलती है?

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

उपरोक्त पाठ फ़ाइल में 4 तत्वों की 3 पंक्तियां अल्पविराम से अलग होती हैं। परिवर्तनीय numLines '4' नहीं '3' के रूप में प्रिंट करता है। तो, लेन (myLines) सूचियों की सूची की लंबाई नहीं प्रत्येक सूची में तत्वों की संख्या लौटा रहा है।

जब मैं myLines [0] प्रिंट करता हूं, तो मुझे पहली सूची मिलती है, myLines [1] दूसरी सूची इत्यादि। लेकिन len (myLines) करता है मुझे सूचियों की संख्या नहीं दिखाएं, जो 'रेखाओं की संख्या' के समान होना चाहिए।

मुझे यह निर्धारित करने की ज़रूरत है कि फ़ाइल से कितनी लाइनें पढ़ी जा रही हैं।

10
आपके कोड में, आपके पास लाइनों (स्ट्रिंग्स) की एक सूची है। सूचियों की सूची नहीं। और अजगर खुशी से खाली लाइनों की गिनती करेगा ... क्या आपने यह सुनिश्चित करने के लिए जांच की है कि आपके पास कोई खाली रेखा नहीं है?
जोड़ा लेखक mgilson, स्रोत
लेन (myLines) आपको उस सूची के अंदर ऑब्जेक्ट्स की संख्या देगा चाहे वे सूचियां, डिकट्स या स्ट्रिंग्स हों।
जोड़ा लेखक jramirez, स्रोत
पायथन नहीं स्वचालित रूप से अल्पविराम पर फ़ाइल से पढ़ने वाले पाठ को विभाजित करेगा। यदि आप ऐसा करना चाहते हैं तो csv मॉड्यूल का उपयोग करें।
जोड़ा लेखक Martijn Pieters, स्रोत
यदि उपयोग की जाने वाली टेक्स्ट फ़ाइल में 3 लाइनें हैं, तो len (myLines) प्रत्येक की सामग्री के बावजूद 3 होगी। शायद आपके पास फ़ाइल के अंत में एक खाली रेखा है। कोशिश करने की एक और चीज open ("filetest.txt", "rt") का उपयोग कर रही है क्योंकि कुछ प्लेटफ़ॉर्म में टेक्स्ट फ़ाइल की प्रत्येक पंक्ति के अंत में एकाधिक वर्ण होते हैं जो readlines() को भ्रमित कर सकते हैं
जोड़ा लेखक martineau, स्रोत
बस myLines प्रिंट करें और कारण स्पष्ट होगा।
जोड़ा लेखक Mark Tolonen, स्रोत
आपका कोड बिल्कुल ठीक काम करता है। हमें फाइल दें।
जोड़ा लेखक tMJ, स्रोत

4 उत्तर

यह सूचियों की सूची में डेटा बचाता है।

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]
16
जोड़ा

"उपरोक्त पाठ फ़ाइल में 4 तत्वों की 3 पंक्तियां अल्पविराम से अलग होती हैं। परिवर्तनीय numLines '4' नहीं '3' के रूप में प्रिंट करता है। इसलिए, लेन (myLines) प्रत्येक सूची में तत्वों की संख्या को वापस कर रहा है, लंबाई की लंबाई नहीं सूचियों की सूची। "

ऐसा लगता है कि आप एक .csv में 3 पंक्तियों और 4 कॉलम के साथ पढ़ रहे हैं। यदि ऐसा है, तो आप .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
1
जोड़ा

अगर आपकी सूची का नाम listlen है तो बस len (listlen) टाइप करें। यह पाइथन में आपकी सूची का आकार वापस कर देगा।

0
जोड़ा

विधि लेन() सूची में तत्वों की संख्या देता है।

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

जब हम प्रोग्राम से ऊपर चलाते हैं, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

पहली सूची लंबाई: 3 दूसरी सूची लंबाई: 2

0
जोड़ा