2017-06-16 3 views
-1

に別のリスト中の値に応じてアレイを分割して別々のアレイの作成:Iは、次のようなマトリックスを有するパイソン

a1 = [[ '05dcc1a8cd49fbe2e7d7fb105d697e96','122624838'],  
     ['5d9573196098ce0bb80b4657e43f2d3b','122624838'], 
     ['df29c5dafbfe8c0dcb5c92a2225c8899','3388999'], 
     ['33f95122281f76e7134f9cbea3be980f','3388999'], 
     ['b013295b38799b8c537c850ff891170e','3388999'], 
     ['b8dc623f5b936f9959e648323f061b3a','3388999']] 

私は行列の第2列に従って分割する別のリストを持っています。次のようにリストである:

pred = [1,1,1,1,0,0,1..]  

IはA1に別個の第2の列の値に応じて、predをリストの値を含む別のリストを取得します。 a1とpredの長さは同じです。これを行う最善の方法は何ですか?

(例:a1は2番目の列の最初の2つの値を持ち、result2 = [1,1,0,0]は2番目の列の次の4つの値のためresult1 = [1,1] a1)

+4

[mcve]を付けてみてください。明確な入力、期待される出力、および現在のコード(存在する場合)。 –

+3

「第2の価値」とは何を意味しますか - すべての奇妙なエントリ?次に、値を 'result1'と' result2'にソートする基準は何でしょうか。また、あなたの例では、 'numpy'配列ではなく、リストを表示します。 –

+1

あなたの質問は明確ではありません。 @ asmita-poddar:あなたの 'result1'、' result2'、 'pred'リスト、' a1'リストを入力すると、関係をより明確に説明できます。 – Haranadh

答えて

0

私はあなたの問題を考え、これに可能な解決策を書こうとしました。

#let consider you have the given values of 'a1' and 'pred' 
a1 = [ '05dcc1a8cd49fbe2e7d7fb105d697e96','122624838',  
     '5d9573196098ce0bb80b4657e43f2d3b','122624838', 
     'df29c5dafbfe8c0dcb5c92a2225c8899','3388999', 
     '33f95122281f76e7134f9cbea3be980f','3388999', 
     'b013295b38799b8c537c850ff891170e','3388999', 
     'b8dc623f5b936f9959e648323f061b3a','338899' 
     'bjdhjndehjkkh54jht3u5355j4jj3453','338899'] 
pred=[1,1,1,1,0,0,1] 
count=[] 
flag=1 
for x in range(0,len(a1)-1): 
    if x%2!=0: 
     if a1[x]==a1[x+2]: 
      flag=flag+1 
     else: 
      count.append(flag) 
      flag=1 
count.append(flag) 
print(count) # The length and no. of partitions 

# Printing the required list of values from pred 
i=0 
l=0 
for x in count: 
    print(pred[i:l+x]) 
    i=l+x 
    l=l+x+1 

これは、限り、あなたは両方のリストの長さが同じであることを考えると、a1内の連続同じ値の数に応じてpred内の値を分割を検討しているようa1predの任意の値のために動作します。

これが役立ちますように!

+0

私はコミュニティに新しいので、私の答えの問題を知りたいです、それは私が改善するのに役立ちます。私にその答えをdownvoteの理由を教えてください – 7bStan

関連する問題