첫 번째 요소, 세 번째부터 200 번째까지의 요소와 201 번째 요소를 마지막 요소를 통해 3 단계 크기의 파이썬 목록에서 원한다고 가정 해 보겠습니다. old_list
에 하나의 색인이 할 수있는 방법이 있나요파이썬 : 틈이있는 슬라이스에 대한 구문이 더 짧습니까?
new_list = old_list[0:1] + old_list[3:201] + old_list[201::3]
:
한 가지 방법은 별개의 색인 생성 및 연결 함께 할까?
이new_list = old_list[[0, 3:201, 201::3]]
나는 몇 가지를 얻을 수 있습니다 : (난 그냥 가까운 뭔가를 찾고 있어요 목록 지수는 목록이 될 수 없으며, 파이썬 때문에 불행하게도 doesn't have slice literals 이후이하지 않는 알고 구문 일) 나는 다음과 같은 일을하고 싶습니다 이것은 NumPy 배열로 전환하는 것으로,하지만 네이티브 Python 목록을 만드는 방법에 더 관심이 있습니다. 나는 또한 a slice maker 또는 그와 비슷한 것을 만들 수 있고, 아마도 내게 원하는 모든 조각의 구성을 나타내는 등가의 슬라이스 객체를주는 강력한 팔을 만들 수 있습니다.
그러나 조각을 관리하기 위해 새 클래스를 만드는 것을 포함하지 않는 무언가를 찾고 있습니다. 슬라이스 구문을 연결하고이를 내 목록에 연결하고 목록에서 개별적으로 조각을 가져 와서 각각의 결과를 마지막에 연결한다는 것을 이해하도록하십시오.
"불행히도 파이썬에는 슬라이스 프리미티브가 없습니다."슬라이스도 아닌가? –
죄송합니다. 슬라이스 리터럴을 말해야하는데 슬라이스 프리미티브가 아닙니다. 즉, '(0 : 10 : 2)'구문을 마치 인덱스를 항상 나타내는 일부 개체처럼 전달할 수는 없습니다. 당신은 슬라이스 구문의 모든 멋진 점들을 파괴하는 당신 자신의 슬라이스 객체를 만드는 지루한 추가 레이어를 거쳐야합니다. 내 [위의 링크 된 질문] (http://stackoverflow.com/questions/13706258/passing-python-slice-syntax-around-to-functions)를 참조하십시오. – ely