Karlo Lozovina wrote:
This is what I'm trying to do (create a list using list comprehesion, then insert new element at the beginning of that list):

  result = [someFunction(i) for i in some_list].insert(0, 'something')

But instead of expected results, I get None as `result`. If instead of calling `insert` method I try to index the list like this:

  result = [someFunction(i) for i in some_list][0]

It works as expected. Am I doing something wrong, or I can't call list methods when doing list comprehension?

The problem is that list methods like insert do not return a list -- they modify it in place. If you do
 a = [1,2,3]
 a.insert(0, 'something')
then a will have the results you expect, but if you do
 b = a.insert(0,'something')
you will find b to be None (although a will have the expected list).


P.S.
In case you're wondering, it has to be done in one line ;).



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to