다음 목록을 고려 파이썬 개념적 순환리스트에서 2 개의 선형리스트를 작성하십시오 start
인덱스 및 end
인덱스 주어진 즉 circle[0]
는 circle[7]
접속되는 원형의리스트로서 개념화는
>>> circle = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> list(enumerate(circle))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h')]
circle
하면 start != end
, 시계 방향과 시계 반대 방향으로 선형 순회 순서를 나타내는 두 개의 목록을 만들고 싶습니다.
사례 1 : start < end
>>> circle = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> start, end = 1, 6
>>> clockwise = circle[start:end+1]
>>> clockwise
['b', 'c', 'd', 'e', 'f', 'g']
>>> counter_clockwise = circle[start::-1] + circle[:end-1:-1]
>>> counter_clockwise
['b', 'a', 'h', 'g']
사례 2 : start > end
>>> circle = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> start, end = 6, 1
>>> clockwise = circle[start:] + circle[:end+1]
>>> clockwise
['g', 'h', 'a', 'b']
>>> counter_clockwise = circle[start:end-1:-1]
>>> counter_clockwise
['g', 'f', 'e', 'd', 'c', 'b']
거기가 내가 가지고 올 것을
는 start
및 end
의 값에 따라, 여기 이 두리스트를 구성하는 파이썬 /보다 효율적/쉬운 방법?
정확한 대답은 없지만 Numpy (http://www.numpy.org/)는 배열 구현에 유용한 기능을 많이 가지고 있습니다. – Xorgon
@Xorgon 죄송합니다. Numpy는 사용할 수 없습니다. – veritasium42