How do you print two lists in python?

Suppose I have 3 lists such as these

l1 = [1,2,3]
l2 = [4,5,6]
l3 = [7,8,9]

how do I get to print out everything from these lists at the same time ? What's the pythonic way to do something like that ?

for f in l1,l2 and l3:
    print f 

This only seems to be taking 2 lists into account.

Desired output: for each element in all the lists, I'm printing them out using a different function

def print_row[filename, status, Binary_Type]:
    print " %-45s %-15s %25s " % [filename, status, Binary_Type]

and I Call the above function inside the for loop.

asked Aug 20, 2012 at 15:52

cyberbemoncyberbemon

2,88011 gold badges36 silver badges61 bronze badges

5

I think you might want zip:

for x,y,z in zip[l1,l2,l3]:
    print x,y,z  #1 4 7
                 #2 5 8
                 #3 6 9

What you're doing:

for f in l1,l2 and l3:

is a little strange. It is basically equivalent to for f in [l1,l3]: since l2 and l3 returns l3 [assuming that l2 and l3 are both non-empty -- Otherwise, it will return the empty one.]

If you just want to print each list consecutively, you can do:

for lst in [l1,l2,l3]:  #parenthesis unnecessary, but I like them...
    print lst   #[ 1, 2, 3 ]
                #[ 4, 5, 6 ]
                #[ 7, 8, 9 ]

answered Aug 20, 2012 at 15:54

mgilsonmgilson

289k60 gold badges603 silver badges675 bronze badges

3

No need to use zip, just add them together using the + operator. l1 + l2 + l3 creates a new list that is the combination of l1, l2 and l3 so you can simply loop through that, like so:

for f in l1+l2+l3:
    print[f]

Your use of the and operator is incorrect. The other reason why your code doesn't work is using commas [like l1, l2, l3] creates a tuple, which is a container that now holds your 3 lists. So when you try to loop through l1, l2, l3 it will loop through every element in that tuple [which are the lists] and not through every element in the lists as you intend.

answered Aug 20, 2012 at 15:55

LanaruLanaru

8,9127 gold badges33 silver badges62 bronze badges

If you want to print

1 4 7
2 5 8
3 6 9

Do:

for i,j,k in zip[l1,l2,l3]:
    print i,j,k

answered Aug 20, 2012 at 15:56

inspectorG4dgetinspectorG4dget

106k25 gold badges137 silver badges235 bronze badges

It depends on what you want to achieve,

>>> #Given
>>> l1,l2,l3 = [1,2,3],[4,5,6],[7,8,9]
>>> #To print row wise
>>> import itertools
>>> for f in itertools.chain[l1,l2,l3]:
    print[f,end=" "]


1 2 3 4 5 6 7 8 9 
>>> #To print column wise
>>> for f in itertools.izip[l1,l2,l3]:
    print[*f,end=" "]


1 4 7 2 5 8 3 6 9 
>>> 

or the following implementation which will work in Python 2.7

>>> for f in itertools.chain[*itertools.izip[l1,l2,l3]]:
    print f,


1 4 7 2 5 8 3 6 9 
>>> 

answered Aug 20, 2012 at 16:09

AbhijitAbhijit

60.1k18 gold badges127 silver badges197 bronze badges

It you're lists are not all the same length it is often better to use map:

>>> l1 = [1, 2, 3]
>>> l2 = [4, 5, 6]
>>> l3 = [7, 8, 9, 2]
>>> for x, y, z in map[ None, l1, l2, l3]:
...     print x, y, z
...
1 4 7
2 5 8
3 6 9
None None 2

answered Aug 20, 2012 at 16:06

Charles BeattieCharles Beattie

5,5571 gold badge29 silver badges32 bronze badges

1

To expand on top of Abhijit answer, you could use the itertools generator as the iterable within a list comprehension.

>>> [ n for n in itertools.chain[l1, l2, l3] ]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

answered Aug 20, 2012 at 17:39

DanDan

1,1492 gold badges10 silver badges18 bronze badges

If you mean that you have 3 lists of equal length and you want to print out their contents as 3 columns, then how about zip[] to connect the columns and a list comprehension to print[] on each iteration:

[ print[row] for row in zip[l1, l2, l3] ]

The above will print repr's of tuple[s]. If you want to format the values otherwise:

[ print["{} / {} / {}".format[*row]] for row in zip[l1, l2, l3] ]

Nobody said you have to use the output of a list comprehension.

answered Dec 20, 2017 at 19:28

pourhauspourhaus

5176 silver badges9 bronze badges

How do I print two lists of elements in Python?

Algorithm. Step1 : create two user input lists. Step2 : Convert the lists to sets and then print set1&set2. Step3 : set1 and set2 returns the common elements set, where set1 is the list1 and set2 is the list2.

How do you write two lists in Python?

Method 2: Add two list using the Comprehension List.
# initialize the Python lists..
lt1 = [2, 4, 6, 8, 10, 30].
lt2 = [2, 4, 6, 8, 10, 12].
# print the original list element..
print [ " Python list 1 : " + str [lt1]].
print [ "Python list 2 : " + str [lt2]].
# use list comprehension to add two lists..

How do I print a list list in Python?

Printing a list in python can be done is following ways: Using for loop : Traverse from 0 to len[list] and print all elements of the list one by one using a for loop, this is the standard practice of doing it.

How do I print side by side in Python?

Using "end" Argument in the print statement [Python 3. X] In Python 3, print[] is a function that prints output on different lines, every time you use the function. ... .
Using "sys" Library [Python 3. X] to Print Without Newline. ... .
Using "comma" to Terminate Print Statement. In order to print in the same line in Python 2..

Chủ Đề