On 26/11/13 19:00, Sam Lalonde wrote:

 >>> list1 = ['dog 1 2', 'cat 3 4', 'mouse 5 6']
 >>> list2 = []
 >>> for animal in list1:
...     animal = animal.split()
...     list2.append(animal)
...

This could be a list comprehension:

list2 = [animal.split() for animal in list1]


 >>> print list2
[['dog', '1', '2'], ['cat', '3', '4'], ['mouse', '5', '6']]
 >>>
 >>> for animal in list2:
...     print animal[1] + animal[2]
...
12

You can see that it just appended the numbers to each other.  I'd like
the output to be:

3

Is there a clean way to get the numbers stored as int instead of str
when I build list2?

Define "clean".
You can use int() on the last two in a second comprehension:

list2 = [ [type, int(x), int(y)] for type,x,y in list2 ]

Or you could just wait to the point of use...

for animal in list2:
   print int(animal[1]) + int(animal[2])

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to