2014-11-23 5 views
3
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']] 

위의 목록이 있지만 요소를 함께 추가하지만 None">=50" 요소는 건너 뜁니다.목록에 요소 추가 Python

숫자가 None인데도 모르겠다해도하고 싶다. 제안 사항이 있으십니까?

for item in zip(under__list[row]): 
    under__list.append(int(sum(item[0]))) 

아래의 출력을 찾고 : 그것은 함께 추가 번호를 하나 개의 목록이 될 것

[1182, 25.2452245, None, None, 9212, 256, 2624, 25.24, 
    2532, 25, 2005252, 52, 25632, None, ' >50K'] 

.

+3

의 입력을 원하는 출력의 예를 제공하십시오; 특히, 당신이하고 싶은 것을 추가하는 것이 명확하지 않다. –

답변

2

모든 내부 목록의 동일한 색인에서 항목을 합치는 것처럼 보입니다. 먼저 zip*을 입력하고 각 행의 첫 번째 항목에 대한 목록 검토에서 Number 유형의 인스턴스이거나 단순히 int 또는 float() 인 경우, 값으로 첫 번째 항목.

>>> 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'] 

표현 sum(x) if isinstance(x[0], Number) else x[0]conditional expression라고합니다.

+0

너 너 아름다운 사람 ...... 너에게 키스 할 수있어. 도와 주셔서 정말 감사합니다. :-) –

1
for item in under_list: 
    item_ = filter(lambda x: x != None and x >= 50, under_list) 
    # Here compute sum of item_ and append to the right place 
1

당신이 필요로 반환하는 함수를 작성 :

def foo(thing): 
    try: 
     return sum(thing) 
    except TypeError: 
     return thing[0] 

mapzip PED에 기능 under__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']] 

>>> 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'] 
>>>