Search code examples
pythonlistpython-3.xprintingnested-lists

Print list of lists in separate lines


I have a list of lists:

a = [[1, 3, 4], [2, 5, 7]]

I want the output in the following format:

1 3 4
2 5 7

I have tried it the following way , but the outputs are not in the desired way:

for i in a:
    for j in i:
        print(j, sep=' ')

Outputs:

1
3
4
2
5
7

While changing the print call to use end instead:

for i in a:
    for j in i:
        print(j, end = ' ')

Outputs:

1 3 4 2 5 7

Any ideas?


Solution

  • Iterate through every sub-list in your original list and unpack it in the print call with *:

    a = [[1, 3, 4], [2, 5, 7]]
    for s in a:
        print(*s)
    

    The separation is by default set to ' ' so there's no need to explicitly provide it. This prints:

    1 3 4
    2 5 7
    

    In your approach you were iterating for every element in every sub-list and printing that individually. By using print(*s) you unpack the list inside the print call, this essentially translates to:

    print(1, 3, 4)  # for s = [1, 3, 4]
    print(2, 5, 7)  # for s = [2, 5, 7]