查找元组的索引匹配到1上的1和2上的2,依此类推……但不使用python在1上的2或2上的1

查找元组的索引匹配到1上的1和2上的2,依此类推……但不使用python在1上的2或2上的1,python,indexing,compare,tuples,Python,Indexing,Compare,Tuples,对于上面的集合,我需要得到索引,其中第一个值应该只与集合的第一个值匹配,第二个值应该只与第二个值匹配 这意味着当我将a[0]与R[tuples]匹配时,a和R中的元素不应该彼此相等,而应该是1:1或2:2 在simple中,first应该只与结果集中的第一个元素匹配,second应该只与第二个元素匹配。而且它不能匹配结果集的任何其他元素 预期答复: 这里是我的代码太详细,太长,需要太长的时间来运行我的实际项目。 因此,我在上面给出了一个示例,请帮助我以乐观的方式驾驶……以达到速度 a=(2,5)

对于上面的集合,我需要得到索引,其中第一个值应该只与集合的第一个值匹配,第二个值应该只与第二个值匹配 这意味着当我将a[0]与R[tuples]匹配时,a和R中的元素不应该彼此相等,而应该是1:1或2:2

在simple中,first应该只与结果集中的第一个元素匹配,second应该只与第二个元素匹配。而且它不能匹配结果集的任何其他元素

预期答复: 这里是我的代码太详细,太长,需要太长的时间来运行我的实际项目。 因此,我在上面给出了一个示例,请帮助我以乐观的方式驾驶……以达到速度

a=(2,5) ANS INDEX: (5,7) 
b=(3,6) ANS INDEX: (9,13) 
提前谢谢

问题:为R[0]和R[1]查找,答案为0:4,5,6,7,为1:2,5,6,7

R[0]的答案:(3,4,5,6,7)=>R[3]有1
R[1]的答案:(4,6,7,8,9)=>R[2]和R[5]不匹配,R[4]有2;R[8]具有19;R[9]具有21

数据

 for j in range(i+1,i+10):
        b=set(Results[j])
        if (len(a&b)==0):

            for k in range(i+10, i+200):
                c=set(Results[k])
                if ( (len(a&c)==0) and (len(b&c)==0) ):

                    for l in range(i+200, i+600):
                        d=set(Results[l])
                        if ( (len(a&d)==0) and (len(b&d)==0)  and (len(c&d)==0) ):

                            for m in range(i+500, i+1000):
                                e=set(Results[m])
                                if ( (len(a&e)==0) and (len(b&e)==0)  and (len(c&e)==0)   and (len(d&e)==0) ):

                                    for n in range(i+1000, i+2000):
                                        f=set(Results[n])
                                        if ( (len(a&f)==0) and (len(b&f)==0)  and (len(c&f)==0)   and (len(d&f)==0)   and (len(e&f)==0) ):

                                            for o in range(i+2000, i+3000):
                                                g=set(Results[o])
                                                if ( (len(a&g)==0) and (len(b&g)==0)  and (len(c&g)==0)   and (len(d&g)==0)   and (len(e&g)==0)  and (len(f&g)==0) ):              

                                                        for p in range(i+3000, XRUN):
                                                            h=set(Results[p])
                                                            if ( (len(a&h)==0) and (len(b&h)==0)  and (len(c&h)==0)   and (len(d&h)==0)   and (len(e&h)==0)  and (len(f&h)==0)  and (len(g&h)==0)):              

                                                                CN=CN+1
result = []
for i, T in enumerate(R):
    r = []
    for Ii, Tt in enumerate(R[i + 1:], i + 1):
        if set(Tt).intersection(set(T)):
            r.append(Ii)

    if len(r):
        result.append(tuple(r))
    else:
        result.append(None)

print('result:{}'.format(result))
输出

 for j in range(i+1,i+10):
        b=set(Results[j])
        if (len(a&b)==0):

            for k in range(i+10, i+200):
                c=set(Results[k])
                if ( (len(a&c)==0) and (len(b&c)==0) ):

                    for l in range(i+200, i+600):
                        d=set(Results[l])
                        if ( (len(a&d)==0) and (len(b&d)==0)  and (len(c&d)==0) ):

                            for m in range(i+500, i+1000):
                                e=set(Results[m])
                                if ( (len(a&e)==0) and (len(b&e)==0)  and (len(c&e)==0)   and (len(d&e)==0) ):

                                    for n in range(i+1000, i+2000):
                                        f=set(Results[n])
                                        if ( (len(a&f)==0) and (len(b&f)==0)  and (len(c&f)==0)   and (len(d&f)==0)   and (len(e&f)==0) ):

                                            for o in range(i+2000, i+3000):
                                                g=set(Results[o])
                                                if ( (len(a&g)==0) and (len(b&g)==0)  and (len(c&g)==0)   and (len(d&g)==0)   and (len(e&g)==0)  and (len(f&g)==0) ):              

                                                        for p in range(i+3000, XRUN):
                                                            h=set(Results[p])
                                                            if ( (len(a&h)==0) and (len(b&h)==0)  and (len(c&h)==0)   and (len(d&h)==0)   and (len(e&h)==0)  and (len(f&h)==0)  and (len(g&h)==0)):              

                                                                CN=CN+1
result = []
for i, T in enumerate(R):
    r = []
    for Ii, Tt in enumerate(R[i + 1:], i + 1):
        if set(Tt).intersection(set(T)):
            r.append(Ii)

    if len(r):
        result.append(tuple(r))
    else:
        result.append(None)

print('result:{}'.format(result))
使用Python:3.4.2测试

问题:为R[0]和R[1]查找,答案为0:4,5,6,7,为1:2,5,6,7

R[0]的答案:(3,4,5,6,7)=>R[3]有1
R[1]的答案:(4,6,7,8,9)=>R[2]和R[5]不匹配,R[4]有2;R[8]具有19;R[9]具有21

数据

 for j in range(i+1,i+10):
        b=set(Results[j])
        if (len(a&b)==0):

            for k in range(i+10, i+200):
                c=set(Results[k])
                if ( (len(a&c)==0) and (len(b&c)==0) ):

                    for l in range(i+200, i+600):
                        d=set(Results[l])
                        if ( (len(a&d)==0) and (len(b&d)==0)  and (len(c&d)==0) ):

                            for m in range(i+500, i+1000):
                                e=set(Results[m])
                                if ( (len(a&e)==0) and (len(b&e)==0)  and (len(c&e)==0)   and (len(d&e)==0) ):

                                    for n in range(i+1000, i+2000):
                                        f=set(Results[n])
                                        if ( (len(a&f)==0) and (len(b&f)==0)  and (len(c&f)==0)   and (len(d&f)==0)   and (len(e&f)==0) ):

                                            for o in range(i+2000, i+3000):
                                                g=set(Results[o])
                                                if ( (len(a&g)==0) and (len(b&g)==0)  and (len(c&g)==0)   and (len(d&g)==0)   and (len(e&g)==0)  and (len(f&g)==0) ):              

                                                        for p in range(i+3000, XRUN):
                                                            h=set(Results[p])
                                                            if ( (len(a&h)==0) and (len(b&h)==0)  and (len(c&h)==0)   and (len(d&h)==0)   and (len(e&h)==0)  and (len(f&h)==0)  and (len(g&h)==0)):              

                                                                CN=CN+1
result = []
for i, T in enumerate(R):
    r = []
    for Ii, Tt in enumerate(R[i + 1:], i + 1):
        if set(Tt).intersection(set(T)):
            r.append(Ii)

    if len(r):
        result.append(tuple(r))
    else:
        result.append(None)

print('result:{}'.format(result))
输出

 for j in range(i+1,i+10):
        b=set(Results[j])
        if (len(a&b)==0):

            for k in range(i+10, i+200):
                c=set(Results[k])
                if ( (len(a&c)==0) and (len(b&c)==0) ):

                    for l in range(i+200, i+600):
                        d=set(Results[l])
                        if ( (len(a&d)==0) and (len(b&d)==0)  and (len(c&d)==0) ):

                            for m in range(i+500, i+1000):
                                e=set(Results[m])
                                if ( (len(a&e)==0) and (len(b&e)==0)  and (len(c&e)==0)   and (len(d&e)==0) ):

                                    for n in range(i+1000, i+2000):
                                        f=set(Results[n])
                                        if ( (len(a&f)==0) and (len(b&f)==0)  and (len(c&f)==0)   and (len(d&f)==0)   and (len(e&f)==0) ):

                                            for o in range(i+2000, i+3000):
                                                g=set(Results[o])
                                                if ( (len(a&g)==0) and (len(b&g)==0)  and (len(c&g)==0)   and (len(d&g)==0)   and (len(e&g)==0)  and (len(f&g)==0) ):              

                                                        for p in range(i+3000, XRUN):
                                                            h=set(Results[p])
                                                            if ( (len(a&h)==0) and (len(b&h)==0)  and (len(c&h)==0)   and (len(d&h)==0)   and (len(e&h)==0)  and (len(f&h)==0)  and (len(g&h)==0)):              

                                                                CN=CN+1
result = []
for i, T in enumerate(R):
    r = []
    for Ii, Tt in enumerate(R[i + 1:], i + 1):
        if set(Tt).intersection(set(T)):
            r.append(Ii)

    if len(r):
        result.append(tuple(r))
    else:
        result.append(None)

print('result:{}'.format(result))

使用Python:3.4.2测试

我仍然不清楚您想做什么。你能解释一下例子吗?如果
(1,5)
满足条件,为什么第一个答案不是
(2,5)->(5,3)
?对(2,5)来说,我开始在R的第一个元素中寻找我的第一个值2,在R[5]中可以找到我的2,而我的值5在R[5]中不存在。然后我转到第二个值5,可以在R[7]中看到。其他元素中没有一个不等于我的第一个值2。b=(3,6)ANS INDEX:(9,13)现在对于(3,6),我开始在R的第一个元素中寻找我的第一个值3,在R[9]中可以找到我的3,而我的值6在R[9]中不存在。然后我转到第二个值6,可以在R[11]中看到。但是不能接受,因为它有我的第一个值,所以我移动到,并且没有一个R[13]其他元素不等于我的第一个值3我真的很难理解你的标准,但是当你有“并且没有一个R[7]其他元素不等于我的第一个值2”这样的句子时,当
R[7]
(2,5)
我很困惑。我还不清楚你想做什么。你能解释一下例子吗?如果
(1,5)
满足条件,为什么第一个答案不是
(2,5)->(5,3)
?对(2,5)来说,我开始在R的第一个元素中寻找我的第一个值2,在R[5]中可以找到我的2,而我的值5在R[5]中不存在。然后我转到第二个值5,可以在R[7]中看到。其他元素中没有一个不等于我的第一个值2。b=(3,6)ANS INDEX:(9,13)现在对于(3,6),我开始在R的第一个元素中寻找我的第一个值3,在R[9]中可以找到我的3,而我的值6在R[9]中不存在。然后我转到第二个值6,可以在R[11]中看到。但是不能接受,因为它有我的第一个值,所以我移动到,并且没有一个R[13]其他元素不等于我的第一个值3我真的很难理解你的标准,但是当你有“并且没有一个R[7]其他元素不等于我的第一个值2”这样的句子时,当
R[7]
(2,5)
我很困惑。哦,非常感谢兄弟……非常感谢。我会尽快检查,如果有任何疑问,请回复。再次感谢。回答R[0]:R[0][0]=R[3][0]、R[0][1]=R[4][1]、R[0][2]=R[5][2]、R[0][3]=R[6][3](1=1,10=10,14=14,34)@JohnEbenezer:读一读哦,非常感谢你,兄弟……我很快会查一查,如果有任何疑问会回复的。再次感谢。回答R[0]:R[0][0]=R[3][0],R[0][1]=R[4][1],R[0][2]=R[5][2],R[0][3]=R[6][3](1=1,10=10,14,34=34)@JohnEbenezer:Read