How do I create a list of lists in Python?
My Python code generates a list every time it loops:
list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname', 'float')], skip_header=1)
But I want to save each list generated, so I need to create a list of lists in Python, right?
So I tried:
list[i] = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname', 'float')], skip_header=1)
But Python gives me an error saying that “list” is not defined. I’m not sure how to define it. Also, is a list of lists in Python the same as an array?
Thank you!
             
            
              
              
              
            
           
          
            
            
              Hey there! I’ve come across this issue before and can definitely help. To properly create a list of lists in Python, you need to initialize an empty list before the loop where you generate your lists. Here’s how you can do it:
list_of_lists = []  # Initialize an empty list to store lists  
for i in range(10):  # Loop through your iterations  
    new_list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname', 'float')], skip_header=1)  
    list_of_lists.append(new_list)  # Append the new list to list_of_lists  
This approach ensures that list_of_lists will store each list generated in the loop. By the end of the loop, you’ll have your list of lists. Simple, right?
             
            
              
              
              
            
           
          
            
            
              Great point, Shilpa! If you want a more concise way to create a list of lists in Python, you can use list comprehensions. They’re compact and pretty elegant for cases like this:
list_of_lists = [np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname', 'float')], skip_header=1) for i in range(10)]  
This one-liner does the same as the loop Shilpa mentioned—it generates and appends each list to list_of_lists. A little cleaner if you’re comfortable with comprehensions!
             
            
              
              
              
            
           
          
            
            
              Adding to what Vindhya and Shilpa said—both great suggestions—one critical tip: Avoid using list as a variable name. It’s a built-in Python type, and overwriting it can cause issues down the line. Instead, use something like list_of_lists or another descriptive name.
Here’s a solid approach to do it:
list_of_lists = []  # Initialize list_of_lists  
for i in range(10):  # Loop through your iterations  
    new_list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname', 'float')], skip_header=1)  
    list_of_lists.append(new_list)  # Append the new list  
This ensures that your variable name is safe and your code is robust. And to answer your last question—no, a list of lists in Python is not the same as an array. Lists are more flexible, but arrays (like those in NumPy) are optimized for numerical operations.