Add items to Python list
under__list =[[74, 0.1423287845938018, None, None, 10,
1.9099604642265018, 0.5185563065935468, 1.6825659992347914,
3.547506695574544, 2.7789822726693023, 20051, 0, 25, None, ' >50K'],
[44, 0.9181229773462783, None, None, 14, 0.17973300970873787,
0.1644822006472492, 0.13940129449838187, 1.1252427184466018,
0.4357200647249191, 0, 0, 40, None, ' <=50K']]
I have the list above, but I want to add items together but skip items None
and ">=50"
.
I want to be able to do this even if I don't know where the None
values of the numbers are. Any suggestions?
for item in zip(under__list[row]):
under__list.append(int(sum(item[0])))
Look for the way out below:
[1182, 25.2452245, None, None, 9212, 256, 2624, 25.24,
2532, 25, 2005252, 52, 25632, None, ' >50K']
This will be one list with added numbers.
source to share
It sounds like you want to sum the elements at the same indices from all the inner lists. To do this, first of all, you need to use zip
with *
, and then in the control over the list of the first element of each row there will be an instance of the type Number
or just int
or float
( isinstance(x[0], (int, float))
), if so, sum them up, the rest use the first as the value.
>>> from numbers import Number
>>> [sum(x) if isinstance(x[0], Number) else x[0] for x in zip(*under__list)]
[118, 1.0604517619400802, None, None, 24, 2.0896934739352395, 0.683038507240796, 1.8219672937331732, 4.672749414021146, 3.2147023373942214, 20051, 0, 65, None, ' >50K']
The expression sum(x) if isinstance(x[0], Number) else x[0]
is called a conditional expression .
source to share
Write a function to return what you need:
def foo(thing):
try:
return sum(thing)
except TypeError:
return thing[0]
map
function for strings zip
ped << 23>
>>> under__list =[[74, 0.1423287845938018, None, None, 10, 1.9099604642265018, 0.5185563065935468, 1.6825659992347914, 3.547506695574544, 2.7789822726693023, 20051, 0, 25, None,' >50K'], [44, 0.9181229773462783, None, None, 14, 0.17973300970873787, 0.1644822006472492, 0.13940129449838187, 1.1252427184466018, 0.4357200647249191, 0, 0, 40, None, ' <=50K']]
>>> map(foo, zip(*under__list))
[118, 1.0604517619400802, None, None, 24, 2.0896934739352395, 0.683038507240796, 1.8219672937331732, 4.672749414021146, 3.2147023373942214, 20051, 0, 65, None, ' >50K']
>>>
source to share