### Thread: This list.. calculate list ints?

1. No Profile Picture
Registered User
Devshed Newbie (0 - 499 posts)

Join Date
Sep 2012
Posts
10
Rep Power
0

#### This list.. calculate list ints?

Okey, I just posted here about objects in a list, I got a helpful answer very fast so I was thinking, why not get more help since it is much needed! It is still the list, right now my list looks something like this
Code:
mylist = [name 10, name2 15, name3 23]
This looks retarded I know, but I have the user input a first name, last name and a value into the list, what I want to do is to find the average of the values, if you understand?

I can't get it working, is that becouse i have mixed str and int in the list, is this even possible?

again, all help is appreciated!
2. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Mar 2012
Posts
33
Rep Power
3
ya its pretty possible

Code:
list = ['string', 14, '19', 'STRING']
with this list you can see there are two string @ indexes 0 and 3 and two ints @ the indexes 1 and 2
easiest way to add these ints is with a loop like this

Code:
result = 0

for i in list:
if type(i) == type(1):
# type(1) is an int obviously
result += i
and thats it, you have added your ints together and stored the result in the variable 'result'

EDIT:
Also i'm not sure what your are trying to do with your list there is name name2 and name3 of type string that is stored from input? and the ints just the length of the name?

well if so you might want to look at this

Code:
name1 = raw_input('> ')
name2 = raw_input('> ')
name3 = raw_input('> ')

list = [name1, len(name1), name2, len(name2), name3, len(name3)]

result = 0

for i in list:
if type(i) == type(1):
result += i

print "Your result is %d" %(result)
3. First of all, i think the syntax of the list as stated is wrong:
Code:
>>> mylist = [name 10, name2 15, name3 23]
File "<stdin>", line 1
mylist = [name 10, name2 15, name3 23]
^
SyntaxError: invalid syntax
So if you fix that, then, yes, even what appear to be integers will be strings so you have to deal with that. How about this:
Code:
>>> mylist = ["name 10", "name2 15", "name3 23"]
>>> mylist=[i.split() for i in mylist]
>>> mylist
[['name', '10'], ['name2', '15'], ['name3', '23']]
>>> mylist=zip(*mylist)
>>> mylist
[('name', 'name2', 'name3'), ('10', '15', '23')]
>>> av=sum(map(int,mylist[1]))/len(mylist[1])
>>> av
16
>>>
4. No Profile Picture
Registered User
Devshed Newbie (0 - 499 posts)

Join Date
Sep 2012
Posts
10
Rep Power
0
I'm sorry if i was unclear, it no syntax errorr, but it is hard to explain! still, very helpful, I think I can take it from here, thx guys.
5. Are you certain that it is a list that you want? The structure of the data seems more suited to a dictionary, with the name as the key and the score as the value:

Code:
mydict = {name: 10, name2: 15, name3: 23}
This seems like a better solution for the problem at hand, as well.