목록 (예 : xs = [1,2,3,4,5,6])에서 짝수를 삭제 한 다음 나머지 목록을 반환하는 함수를 작성하고 싶습니다. 도움이 필요하다. 고맙습니다. 참고 : 삭제 정렬 등과 같은 내장 함수는 사용할 수 없지만 삭제 명령문 만 사용하십시오.파이썬 목록에서 값을 삭제하는 중 3
답변
당신이 남아있는 목록을 반환 할 필요가 있기 때문에, 삭제해서는 안 대신 필터링 :
>>> xs = [1, 2, 3, 4, 5, 6]
>>> [v for v in xs if v % 2 == 1]
[1, 3, 5]
확실한 방법은 '아무튼이 모든 홀수 번호 목록을 만듭니다
[v for v in xs if v % 2 == 1]
t 직장 :
for index, value in enumerate(xs):
if not value % 2:
del xs[index]
또는 더 나쁜 경우,이 특별한 경우에는 작동하지만, 운이 좋은 (그리고 당신의 선생님은 심지어 당신을이 함정에 빠지게 할 것입니다).
왜? 글쎄, 너 del i[0]
일 때, 그 모든 것들이 내려간다. 따라서 다음에 i[1]
을 확인하면 원래 i[1]
이 아니지만 원본은 i[2]
입니다. 원래 i[1]
을 확인하지 않고 삭제할 수 없습니다.
이
는for
에 대한 설명서에 큰 회색 노트에 설명되어 있습니다. 마티 피에 터스가 말한대로 *이에
가장 좋은 방법은, 처음에 삭제하지 않는 것입니다.
원본 목록을 돌연변이시키는 데 신경 쓰지 않는다면 (동일한 목록에 대한 참조가없는 다른 개체가 있으면 트릭 질문을 좋아하지 않아도 상관 없습니다.) 만들고 작성한 다음 반환하십시오. 그의 대답과 마찬가지로 새로운 목록. 을 수행하더라도은 원래 목록을 변경해야하므로 xs[:] = [v for v in xs if v % 2 == 1]
은 바로 삭제할 수 있습니다.
for index, value in list(enumerate(xs))[::-1]:
if not value % 2:
del xs[index]
: 당신이 어떤 이유로 자리에서 삭제해야합니다 (그 힘이 과제의 요구 사항이 될처럼 소리) 경우
는하지만, 가장 쉬운 방법은 끝에서 뒤로 작업하는 것입니다 목록에서 값을 삭제하는 것은 그 다음에 오는 값을 이동하기 때문에 역순으로 목록을 살펴보면 결코 길을 잃지 않고 테스트하려는 요소를 건너 뛰지 않습니다.
* 설명은 Python 1.x에서 무언가를 읽습니다. 이제 반복자 프로토콜 공공 것을, 그들은 정말 당신은 또한 지능형리스트를 사용하여 수행 할 수
xs=[1,2,3,4,5,6]
not_even = []
for i in xs:
if i%2 != 0:
not_even.append(i)
print not_even
#output: [1, 3, 5]
... 일부 지정되지 않은 장소에서 내부 카운터를 유지에 대해 이야기 할 필요가 없습니다 :
[i for i in xs if i%2 != 0]
이것은 설명이없는 Martijn Pieters의 대답의 훨씬 더 긴 버전입니다. – abarnert
- 1. python- 목록에서 요소를 삭제하는 중
- 2. Python : 배열 목록에서 숫자 범위를 삭제하는 중
- 3. 다른 목록에서 목록의 값을 삭제하는 방법
- 4. 파이썬 목록에서 숫자가없는 단어를 삭제하는 방법은 무엇입니까?
- 5. python : 목록에서 값을 없애는 중
- 6. 목록을 수정하는 중 목록에서 삭제하는 방법
- 7. 사전 목록에서 요소를 삭제하는 방법
- 8. 목록에서 데이터를 삭제하는 Lisp
- 9. 임의로 목록에서 값을 chosing하고 선택한 값을 삭제하는 더 빠른 방법
- 10. 목록에서 항목을 삭제하는 방법
- 11. 함수를 통과 한 후 목록에서 항목을 삭제하는 중 오류가 발생했습니다.
- 12. CSV 목록에서 1 일보다 오래된 파일을 삭제하는 중 오류가 발생했습니다.
- 13. 튜플의 값을 기반으로 목록에서 튜플을 삭제하는 방법은 무엇입니까?
- 14. 목록에서 폴더를 삭제하는 Powershell 스크립트
- 15. 목록에서 [NaN]을 삭제하는 방법?
- 16. 정말 파이썬의 루핑 목록에서 항목을 삭제하는 것
- 17. 파이썬 목록에서 요소 편집하기
- 18. 파이썬 3 문자열
- 19. 팝업 목록에서 빈 요소를 삭제하는 방법
- 20. 사전에 3 개의 값을 인쇄하는 파이썬
- 21. 3 계층을 통해 gridview에서 행을 삭제하는 중 오류가 발생했습니다.
- 22. BadStatusLine : '파이썬 코드에서 Google 캘린더 이벤트를 삭제하는 중 오류가 발생했습니다.
- 23. RealmList에서 RealmObject를 삭제하는 중
- 24. 데이터베이스에서 URL을 삭제하는 중
- 25. 오브젝트를 삭제하는 중
- 26. TCHAR 포인터를 삭제하는 중
- 27. 사전 목록에서 파이썬 사전 값을 검색하는 가장 좋은 방법은 무엇입니까?
- 28. 파이썬 : 목록에서 변수에 값을 할당하거나 내가 다음을 수행 할
- 29. Django 프로젝트의 AJAX 호출 : 목록에서 다음 항목 3 개로드 중
- 30. 사전 중 파이썬
그리고를? 지금까지 뭐 해봤 어? 어디서 붙어 있니? –
음,'delete' 문이 없기 때문에, 당신은 과제를 실패 할 것입니다. – abarnert