2017-04-04 1 views
-1

누구든지 파이썬에서 2 목록 (List1 및 List2)의 임의의 파티션을 형성하는 방법을 알고 있습니까? 목록의 크기가 같을 필요는 없습니다. 예를 들어 :파이썬 - 2 목록의 무작위 파티션을 형성하는 방법

S = [1,2,3,4,5,6,7] 
List1=[3,6,1,2] 
List2=[5,4,7] 

또는

List1 =[3,5] 
List2=[1,2,4,7,6] 
+0

시도해 보셨습니까? – Julien

+0

안녕하세요. 나는하지 않았다. 나는 Python을 처음 접했습니다. 시뮬레이션 어닐링을 사용하여 최소 컷 문제를 해결하기위한 무작위 초기 솔루션을 만들려고합니다. – user02

+0

죄송합니다, 우리는 당신을 위해 코드를 작성하거나 개인 훈련을 제공하기 위해 여기에 없습니다. 먼저 무언가를 시도하고, 자습서 등을 읽으십시오. 그리고 보여줄 코드가있을 때 다시 오십시오. – Julien

답변

1

나는 당신의 규칙이 임의성 및 분할 주위 무엇인지 모르겠지만, 이것은 당신이 시작할 수 있어야합니다

import random 

s = [1,2,3,4,5,6,7] 

random.shuffle(s) 

cut = random.randint(0, len(s)) 
list_1 = s[:cut] 
list_2 = s[cut:] 

print list_1 
print list_2 
+0

대단히 감사합니다! – user02

1

내가 추천 :

  1. Shuffl e 또는 무작위로 정렬 목록
  2. 그런 다음 목록을 중단하는 시점의 임의의 인덱스를 선택

코드 :

import random 

S = [1,2,3,4,5,6,7] 
random.shuffle(S) 
index = random.randint(0, len(S)) 
List1 = S[index:] 
List2 = S[:index] 
+0

정말 고마워요! 나는 그것이 내가 필요로하는 것이라고 생각한다 – user02

0

당신이 모듈 무엇인지하지만, 이것은 무엇을하는 기능입니다하지 않음 네가 원해.

import random 
def split(S): 
    x = random.randint(0,len(S)) 
    y = len(S)-x 
    S1 = S[0:x] 
    S2 = [] 
    for i in range(len(S)): 
     if S[i] not in S1: 
      S2.append(S[i]) 
    return S1,S2 
+0

고맙다! 첫 번째 요소가 항상 목록 1에 있고 마지막 요소가 항상 목록 2에 있으면 코드를 수정하는 방법을 알고 있습니까? – user02