On Wed, Nov 27, 2013 at 5:00 AM, Sam Lalonde <[email protected]> wrote: > Hi, I am very new to python. > > I have a list with mixed strings/integers. I want to convert this to a list > of lists, and I want the numbers to get stored as integers. > >>>> list1 = ['dog 1 2', 'cat 3 4', 'mouse 5 6'] >>>> list2 = [] >>>> for animal in list1: > ... animal = animal.split() > ... list2.append(animal) > ... >>>> print list2 > [['dog', '1', '2'], ['cat', '3', '4'], ['mouse', '5', '6']] >>>> >>>> for animal in list2: > ... print animal[1] + animal[2] > ... > 12 > 34 > 56
The numbers are appended because: '1' + '2' = '12' and so on. > > You can see that it just appended the numbers to each other. I'd like the > output to be: > > 3 > 7 > 11 > > Is there a clean way to get the numbers stored as int instead of str when I > build list2? Consider your original list: >>> list1 = ['dog 1 2', 'cat 3 4', 'mouse 5 6'] For each item of the list, you want to extract the numbers and add them with the sums in a new list. Let's take it one step at a time >>> # extract the numbers only ... for item in list1: ... print item.split()[1:] ... ['1', '2'] ['3', '4'] ['5', '6'] But, we want each number as integer and print their sum instead of the individual numbers: >>> for item in list1: ... print int(item.split()[1]) + int(item.split()[2]) ... 3 7 11 So, we have our numbers. But we would like this to be a list instead. So, instead of printing, simply create a list. Hope that helps. Best, Amit. > > Thanks > > _______________________________________________ > Tutor maillist - [email protected] > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor > -- http://echorand.me _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
