Python 목록 색인 일괄 삭 제 를 위 한 5 가지 방법

최근 자바 로 프로젝트 를 진행 해 리스트 브 로드 캐 스 트 인 포 스 의 브 로드 캐 스 트 인 포 스.reove()방법 을 사용 해 프로젝트 의 큰 실 수 를 저 질 렀 다.자바 언어 를 처음 사용 해 remove()방법 을 지나치게 믿 었 기 때문에 생각 없 이 list 대상 의 지정 요 소 를 삭제 하 는 데 사용 했다.
배경:
대상 listObj:[3,4,5,6]
지정 한 색인 목록 삭제 indexList:[1,2]
결과 되 돌리 기:[3,6]
일반적인 오류:

for listElement in listObj:
	for index in indexList:
		if listElement == listObj[index]:
			listObj.remove(listElement)
결과 되 돌리 기
在这里插入图片描述
이러한 결 과 는 잘못 보고 하지 않 을 뿐만 아니 라 반환 값 도 목표 와 매우 비슷 합 니 다.2 개의 값 list 대상 을 되 돌려 줍 니 다.len(listObj)-2=2 도[3...시작 입 니 다.자세히 보지 않 으 면 문제 가 없 을 것 같 습 니 다.하지만 결 과 는 틀 렸 다.listObj.remove()listObj.pop(index)로 바 꾼 결과 도 같 았 다.
在这里插入图片描述
자바 가 같은 프로 그래 밍 사상 으로 얻 은 결과 도 유사 성 이 있다.
이러한 오 류 는 주로 초보 자 들 이 데이터 저장 원리 에 대해 잘 이해 하지 못 하거나 메모리 저장 길이 의 동적 변화 로 인 한 것 을 의식 하지 못 한 것 입 니 다.다음은 몇 가지 Python 이 지정 한 목록 색인 을 삭제 하 는 방법 을 소개 합 니 다.

a = [3, 4, 5, 6]
b = [1,2]  # b    a   

#   a    b    
# ====> [3, 6]

#    
a = [a[i] for i in range(len(a)) if (i not in b)]
print(a)  #          list     a 


#    
[ a.remove(cElement) for cElement in [a[i] for i in b]]
print(a) #      a.remove()     


#    
a = {a[i] if i not in b else None for i in range(len(a))}
a.remove(None) #              ,
				#                     
print(a)


#    
m = {i:element for i, element in enumerate(a)}
[m.pop(i) for i in b]
print(list(m.values())) #           ,          ,
						 #     values()      --> list  


#    
class ListSub:

  def __init__(self, list1=None):
    if list1 is None:
      self.listA = []
    elif len(list1):
      self.listA = [x for x in list1]


  def __sub__(self, rhs):
    [self.listA.remove(cElement) for cElement in [self.listA[i] for i in rhs.listA]]
    return self.listA


a = ListSub(a)
b = ListSub(b)

print(a-b)  #      ,  Python     “-”     ,
			 #           ,       ,    ,
			 #            。
물론 상기 방식 은 순 전 히 방법 을 실현 하 는 것 일 뿐 알고리즘 최적화 와 해당 하 는 이상 포획 과 처 리 를 하지 않 았 습 니 다.파 이 썬 의 효율 은 유명 합 니 다.모든 큰 소 들 은 너무 신경 쓰 지 마 세 요.
방법 은 사실 많 지만 프로젝트 에 나타 난 자바 문법 과 같은 오류 에 대해 저 는 Python 으로 자신 을 반성 하고 여러분 에 게 도움 이 되 었 으 면 좋 겠 습 니 다.감사합니다.
마지막 으로 다른 언어 를 배 우 는 동시에 Python 은 그의 언어 가 편리 한 점도 있 고 다른 언어 가 공유 하 는 유감 도 있다 는 것 을 알 게 되 었 다.언어 기반 이 없 는 사용자,구덩이 가 특히 많다(예 를 들 어 List 류 의 사용)는 것 을 알 게 되 었 다.그래서 널리 배우 고 비교 하 며 여러 가지 언어 정 수 를 모 은 코드 를 써 야 한다.그리고 더 많은 초보 자 들 은 업무 처리 와 절차 의 실현 에 정력 을 기울 여야 한다.
파 이 썬 의 목록 색인 대량 삭 제 를 실현 하 는 5 가지 방법 에 관 한 글 은 여기까지 입 니 다.더 많은 파 이 썬 목록 색인 대량 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기