2017-06-16 34 views
-1

另一個列表中的值分割的陣列創建單獨的陣列我有這樣一個矩陣如下:通過根據在Python

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

我有我想根據矩陣的第二列分裂另一個列表。列表如下:

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

欲獲得含有預解碼值的列表中的值的單獨的列表,根據在A1中的不同的第二列的值。 a1和pred的長度是相同的。做這個的最好方式是什麼? (例如,result1 = [1,1],因爲a1的第二列中的前兩個值相同,result2 = [1,1,0,0],這是由於第二列中的下四個值a1)

+4

請嘗試給[mcve]。清晰的輸入,預期的輸出和當前的代碼(如果有的話)。 –

+3

「第二價值」是什麼意思 - 每個奇數條目?那麼將這些值排序爲'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 

a1pred任何價值pred根據連續相同值的數量在a1這將工作,只要你正在考慮分裂的價值觀,因爲兩個列表的長度是相同的。

希望這有助於!

+0

我很想知道我的答案中的問題,因爲我是社區新手,它會幫助我改進。讓我知道降低答案的理由 – 7bStan