단일 값을 생략하는 범위 (생성자 또는 목록)를 작성하는 가장 간단한 방법은 무엇입니까? 그래서 n
(독점)에 있지만 k
없이 0
(포함)로부터 k
< n
≤ 0
와 정수 모든 정수를 n
및 k
를 원하는 주어진.범위에서 하나의 값 생략하기
0
A
답변
3
귀하의 목록은 0에서 n까지 실행되므로 목록의 n
에 대해 ns
, ns.index(n) == n
입니다. (. ns[0] == 0
, ns[1] == 1
등) 그와
마음에, 당신은 이런 식으로 목록을 슬라이스 수 :
ns = range(n)
ms = ns[:k] + ns[k+1:]
틀림없이 짧은뿐만 아니라, 틀림없이 명확하지, 당신까지 이렇게!
2
내가 지금까지 발견 한 가장 짧은 솔루션은
[i for i in range(n) if i != k]
이다 그러나 아마 짧은 것이 있습니다. 여기서 문제는 Python 2에서 변수 i
이 주변 범위로 유출되어 일부 경우에 성가신 일이 될 수 있다는 것입니다.
+0
_ "아마도 짧은 것이 있습니다."_ 예, '(i) i가 범위라면 (i)! i = k]';-) – Kevin
2
목록 이해 솔루션보다 약간 짧은 :
sorted(set(range(n))-{k})
...하지만 내 생각에, 아마 빨리 또는 이해할 수 없습니다.
1
다시 발전기로 결과를 원하는 경우. 더 나은 성능과 어쩌면 또한 Kevin's set operation approach보다
filter(k.__ne__, range(n))
(한 문자 이상하지만, 아마도 더 많은 메모리를 효율적으로 또한, 이럴 더 나은 의미 맞게 반면 낮은 레벨의 ish.__ne__
에 접근하는 것은 청중에 따라 "어느 정도 읽기 쉬운"목표를 위반할 수 있습니다.)
관련 문제
- 1. 자바 : 문자열에서 단어 생략하기
- 2. 범위에서 가장 낮은 값
- 3. 하나의 범위에서 다른 번호로 다시 매핑
- 4. sqlite3에 대한 인용 부호 생략하기
- 5. 자바 : Regex을 사용하여 텍스트 생략하기
- 6. 엑셀 : VBA 매크로의 행/열 생략하기
- 7. 범위에서 색인에서 값 가져 오기
- 8. jQuery로 범위에서 값 가져 오기
- 9. 셀 범위에서 특정 값 제외
- 10. 엑셀 범위에서 사용할 값 계산
- 11. 범위에서 하나의 행 배열 만들기 (오류 처리)
- 12. 제공된 범위에서 하나의 임의 소수 만 작성
- 13. javascript, regexp - 범위에서 색상 값 줄 바꾸기
- 14. 자바 : 컬렉션의 범위에서 값 가져 오기
- 15. 다른 함수의 범위에서 매개 변수 값 얻기
- 16. 명명 된 범위에서 일치하는 셀 값 찾기
- 17. 요청 범위에서 값 저장 및 검색
- 18. C# 람다를 사용하여 범위에서 값 찾기
- 19. 함수를 루아 테이블의 값 범위에서 실행하는 방법
- 20. 상위 범위에서 지시문 범위로 값 복사
- 21. TSQL 열의 여러 범위에서 고유 값 선택
- 22. Excel 일치 문자열 2 값 범위에서 확인
- 23. 휘도 범위에서 밝게 표시된 비디오 표시 값
- 24. float 범위에서 경계 값 테스트 수행
- 25. TextBox 값 + TextBox 값 하나의 값 보내기
- 26. 선택된 하나의 값
- 27. 하나의 노동자와 반환 값
- 28. 패스 하나의 개체 값
- 29. LINQ는 하나의 값
- 30. 하나의 열 값 추가
Python으로 이것을 작성하는 가장 짧은 방법이 필요한 이유가 있습니까? ? –
@ ZeroPiraeus : 그냥 궁금해서. 따라서 이것을 코드 골프의 의미에서 엄격한 최적이라고 생각하지 마십시오. 일상 생활에서 사용하기에 적합하고 실용적이어야합니다. – MvG