Python 목록 색인 일괄 삭 제 를 위 한 5 가지 방법
배경:
대상 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 가지 방법 에 관 한 글 은 여기까지 입 니 다.더 많은 파 이 썬 목록 색인 대량 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.