On 11/26/2013 08:00 PM, Sam Lalonde 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']
There is a little interpretation error in your terms "a list with mixed
strings/integers": list1 is a simple list of strings, meaning pieces of textual
data. Right? Ii just happens that parts of each of those strings match a
standard _notation_ of numbers (natural integers expressed in positional
indo-arabic numeral notation, for the matter).
Think at this, you could also have:
list1 = ['dog I II', 'cat III IV',...
or
list1 = ['dog uno due', 'cat tre cuatro',...
It would be textual data the same way. Number notations are pieces of text.
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
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?
You must ask Python to _decode_ the numeric notation nested in the pieces of
strings into actual numbers, then perform numeric operations on them. Also,
before that, for a "clean way" as you say, you may isolate each numeric notation.
As a side note, an issue apparent here is that python uses the same operator
sign '+' for arithmetic sum and string (con)catenation. (Not all language share
this choice, it is a language design point.) Else, you would get a Type Error
saying than one cannot add pieces of text.
You can get an answer to this question in the Python programming FAQ at
[http://docs.python.org/2/faq/programming.html#is-there-a-scanf-or-sscanf-equivalent]
(scanf is the C function that does what you need).
Also
[http://docs.python.org/2/faq/programming.html#how-do-i-convert-a-string-to-a-number].
Thanks
Denis
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor