2017-04-04 9 views
-1

誰もが2リスト(List1とList2)のランダムなパーティションをpythonで形成する方法を知っていますか?リストは同じサイズである必要はありません。たとえば :Python - 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. シャッフル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

関連する問題