通过根据Python中另一个列表中的值拆分数组来创建单独的数组

2024-10-02 00:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下矩阵:

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

我有另一个列表,我想根据矩阵的第二列进行拆分。清单如下:

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

我想根据a1中不同的第二列值,获得一个包含list pred值的单独列表。a1和pred的长度相同。最好的方法是什么?你知道吗

(例如result1=[1,1],因为a1在第二列中的前两个值相同,result2=[1,1,0,0],因为a1的第二列中的后四个值相同)


Tags: 方法列表a1矩阵listpredresult1result2
1条回答
网友
1楼 · 发布于 2024-10-02 00:35:12

我考虑过你的问题,试着写下可能的解决办法。你知道吗

#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中的任何值,只要您考虑根据a1中连续相同值的数量对pred中的值进行拆分,前提是两个列表的长度相同。你知道吗

希望这有帮助!!你知道吗

相关问题 更多 >

    热门问题