I understand how the simple list comprehension works eg.:
[x*2 for x in range(5)] # returns [0,2,4,6,8]
and also I understand how the nested list comprehesion works:
w_list = ["i_have_a_doubt", "with_the","nested_lists_comprehensions"] # returns the list of strings without underscore and capitalized print [replaced.title() for replaced in [el.replace("_"," ")for el in w_list]]
so, when I tried do this
l1 = [100,200,300] l2 = [0,1,2] [x + y for x in l2 for y in l1 ]
I expected this:
[100,201,302]
but I got this:
[100,200,300,101,201,301,102,202,302]
so I got a better way solve the problem, which gave me what I want
[x + y for x,y in zip(l1,l2)]
but I didn't understood the return of 9 elements on the first code
Python Nested Lists First, we'll create a nested list by putting an empty list inside of another list. Then, we'll create another nested list by putting two non-empty lists inside a list, separated by a comma as we would with regular list elements.
To add new values to the end of the nested list, use append() method. When you want to insert an item at a specific position in a nested list, use insert() method. You can merge one list into another by using extend() method. If you know the index of the item you want, you can use pop() method.
Lists can be nested within other lists, as shown in the following example that details a sequenced plan to relocate. In this case, it's an ordered list inside another one, though you can nest any type of list within any other type (see the dl entry in this chapter for a related note).
The reason it has 9 numbers is because python treats
[x + y for x in l2 for y in l1 ]
similarly to
for x in l2: for y in l1: x + y
ie, it is a nested loop
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With