모든 목록 항목 확인하기 위해 지능형리스트에서 오류를 잡을 수 나는 절취해야한다. 루프의 끝 부분에서 모든 오류를 수집하여 어떤 객체가 문제를 일으켰는지 보여주고 동시에 모든 목록 요소를 반복하고 싶습니다.나는 루프에 내가 필터 목록 목록 함축을 가지고
내 솔루션 :이 포스트 (How to delete list elements while cycling the list itself without duplicate it) 목록의 중복을 피하고주기에 더 나은 방법이 있다면 물어에서
errors = []
copy = objlist[:]
for obj in copy:
try:
if (obj.mycond()):
# avoiding to touch the list in the loop directly
objlist.remove(obj)
except MyException as err:
errors = [err]
if (errors):
#do something
return objlist
.
커뮤니티는 장소 목록 수정을 피하고 예외 문제를 무시할 경우 적용 할 수있는 목록 내포를 사용합니다.
귀하의 관점에서 볼 때 대체 솔루션이 있습니까? 목록 내포를 사용하여 예외를 관리 할 수 있습니까? 이런 종류의 상황에서 큰 목록 (큰 것을 고려해야 만하는 것)을 사용하면 다른 대안을 찾아야합니까?
목록 항목에 대한 일련의 포인터 ("참조") 인 목록 및 메모리에서 위 또는 아래로 이동해야하는 모든 다음 포인터에 관한 목록에서 삽입 및 삭제를 설명하는 것이 더 명확합니다. "색인"이 단순히 "위치"를 의미하지 않는 한 각 항목에 대해 변경해야하는 "색인"이 없지만 모든 사람이 대답을 읽는 것은 결코 명백하지 않습니다. –
@Peter 필자는 실제로 (가장 가능성있는) 구현 방법보다는 개념적 수준에서 설명하려고 노력했다고 생각합니다. 최적화에 관계없이 OO 관점에서 목록을 구현한다면 구현할 수 있습니다. – Davy8
@ Davy8 : "끝까지 갈 필요가 있습니다."아마도 "필요한 것"을 바꿔야 할 것입니다. OO 관점 구현이'a = b [c]'를 어떻게 처리합니까? 인덱스가'c'와 같은 항목을 찾기 위해'b'리스트를 반복합니다? BTW,'errors = [err]'라고하는 코드에서'errors.append (err)'을 의미하지 않습니까? –