사용자 입력에 따라 목록을 나누려고합니다. 예를 들어, 나는 목록을 얻을 수 있습니다
(["A","B","C","D"],num_of_groups)
>>>["AB","BC","CD","DA"]
내 문제는 마지막 요소에 있습니다. 예 에서처럼 목록의 마지막 요소와 첫 번째 요소를 가져와야하기 때문입니다 (마지막 2 개 및 처음 3 개 ..).
모든 요소를 두 번 추가 한 다음 슬라이싱하여 시도했지만 사용자가 모든 요소 그룹을 원할 때 요소 그룹 하나만 반환하는 대신 두 그룹을 반환하는 문제가 있습니다. 설명하겠습니다.
이것이 내가하는 일이다
list_copy = list(char_list)*2
#get the slice in the size of n.
slices.append(list_copy[i:i+n])
이것은 사용자가 목록 크기와 동일한 크기를 입력 할 때 발생합니다.
(["A","B","C"],3)
>>>["ABC","ACB","BAC","BCA","CAB","CBA","ABC","ACB","BAC","BCA","CAB","CBA"]
*instead of ["ABC","ACB","BAC","BCA","CAB","CBA"]
다른 방법이 있습니까? 도움이 필요합니다! 감사!
모듈러스 연산자 %
를 사용하여 필요한 경우 처음부터 시작합니다.
>>> l = ['a', 'b', 'c', 'd']
>>> [l[i%len(l)]+l[(i+1)%len(l)] for i in range(len(l))]
['ab', 'bc', 'cd', 'da']
>>> [l[i%len(l)]+l[(i+1)%len(l)] for i in range(2*len(l))]
['ab', 'bc', 'cd', 'da', 'ab', 'bc', 'cd', 'da']
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다