Python Forum
Append list into list within a for loop
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Append list into list within a for loop
#1
Hi, I would like to append lists into one list in a for loop. See my code bellow:

def triangle(n: int):
    pole = []
    seznam = []
    i = 0
    j = 0  

    while j < n :          
        while i <= j:
            a = pole.append(1)
            print(pole)  
            seznam.append(a)            
            i +=1 
        j +=1
            
    print(seznam)

####END
My output for triangle(4) is
Output:
[1] [1, 1] [1, 1, 1] [1, 1, 1, 1] [None, None, None, None]
But desired output for triangle(4) is:
Output:
[[1], [1, 1], [1, 1, 1], [1, 1, 1, 1]]
Can you help me, how can I replace "None" with lists of 1? Thank you very much!
Reply
#2
Please put your posted code inside python tags. Otherwise, we cannot read the code properly.

The expression a = pole.append(1) seems incorrect.

pole.append(1) will add a new element to the list "pole". But it will not return anything. "a" will be None after this operation. What do you want "a" to be?

>>> a = ['some', 'list'].append(1)
>>> a == None
True
Reply
#3
list.append(item) does not return a list. The reason for this is append modifies the list instead of creating a new list.

Your function should return a list but it doesn't. You throw the list away as soon as the function exits. You try to get the list by using a variable that has the same name (seznam) as a local variable in the function, but will not work. This doesn't matter much because you never call your triangle function anyway.

You are writing this program in Python, so use Python loops, not C loops.
five_a = []
for a in 'aaaaa':
     five_a .append(a)
# or
for _ in range(5):
    five_a .append('a')
There are shorter ways than using a loop to initialize a list. You can use a list comprehension:
five_a  = ['a' for _ in range(5)])
Or you can use an initializer.
five_a = (['a']*(5))
To get a list of lists you could have a loop inside of a loop, or you could put an list comprehension or an initialize inside a loop. You could also use a list comprehension that uses a generator to make the inner and outer lists. Or you could use a generator generator inside of a generator. Your triangle generator program can be written in a single line of Python code.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  append str to list in dataclass flash77 6 343 Mar-14-2024, 06:26 PM
Last Post: flash77
  No matter what I do I get back "List indices must be integers or slices, not list" Radical 4 1,091 Sep-24-2023, 05:03 AM
Last Post: deanhystad
  Delete strings from a list to create a new only number list Dvdscot 8 1,466 May-01-2023, 09:06 PM
Last Post: deanhystad
Question How to append integers from file to list? Milan 8 1,361 Mar-11-2023, 10:59 PM
Last Post: DeaD_EyE
  List all possibilities of a nested-list by flattened lists sparkt 1 878 Feb-23-2023, 02:21 PM
Last Post: sparkt
  Big O runtime nested for loop and append yarinsh 4 1,331 Dec-31-2022, 11:50 PM
Last Post: stevendaprano
  Сheck if an element from a list is in another list that contains a namedtuple elnk 8 1,714 Oct-26-2022, 04:03 PM
Last Post: deanhystad
  convert this List Comprehensions to loop jacklee26 8 1,418 Oct-21-2022, 04:25 PM
Last Post: deanhystad
  read a text file, find all integers, append to list oldtrafford 12 3,371 Aug-11-2022, 08:23 AM
Last Post: Pedroski55
Question Keyword to build list from list of objects? pfdjhfuys 3 1,500 Aug-06-2022, 11:39 PM
Last Post: Pedroski55

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020