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