나는 몇 가지 다른 문서를 읽고 내가 수행하려고 노력하고있는 부분을 이해하지만 아직 내 대답을 해결하는 대답을 찾지 못했습니다. 요구 사항.Python - 목록에서 키/값 요소를 제거하고 새 목록을 반환하십시오.
[1,2,3,4]와 같은 간단한 목록에서 단일 항목을 제거하는 방법을 알고 있지만 더 복잡한 목록이 있습니다. 주문/내용을 예측할 수 없으며 제거하려고합니다. 나는 제거해야
list = [{u'role': u'OWNER', u'userByEmail': u'[email protected]'}, {u'specialGroup': u'projectWriters', u'role': u'READER'}, {u'specialGroup': u'projectOwners', u'role': u'READER'}, {u'specialGroup': u'projectReaders', u'role': u'READER'}, {u'role': u'READER', u'userByEmail': u'[email protected]'}, {u'view': {u'projectId': u'project-01', u'tableId': u'testing_tbl_2', u'datasetId': u'test2'}}, {u'view': {u'projectId': u'project-01', u'tableId': u'testing_tbl_3', u'datasetId': u'dtest2'}}, {u'view': {u'projectId': u'project-01', u'tableId': u'view1', u'datasetId': u'test2'}}]
:에서 요소
{u'role': u'READER', u'userByEmail': u'[email protected]'}
및 그 키/값 요소 존재하지 않고 새 목록을 반환합니다. 이런 식으로 할 수 있지만 (이 형식을 선호하는) 필터는 찾고있는 키/값 요소 만 반환합니다.
>>> filter(lambda row: row.has_key('userByEmail') and row['userByEmail'] == '[email protected]', list)
[{u'role': u'OWNER', u'userByEmail': u'[email protected]'}]
목록에서 요소를 제거한 다음 필터링 된 요소가없는 새 목록을 어떻게 인쇄합니까?
그래서 '필터'와 정확히 반대되는'람다 '를 사용해야합니다. – ForceBru
필터 할 술어가 * 유지할 내용을 결정합니다. 그냥 무효화해라. –