马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有个小伙伴问我一个数字的对应问题,我写不出来,求助大家
a1 = [(1, 6), [1, 2, 5, 6, 7, 10]], [(2, 7), [1, 2, 3, 6, 7, 8]], [(3, 8), [2, 3, 4, 7, 8, 9]], [(4, 9),[3, 4, 5, 8, 9, 10]], [(5, 10), [1, 4, 5, 6, 9, 10]]
a2=[9,8,6,3,4,7,8,5,4]
大概意思就是说,先判定a2的元素在a1的哪个元素里面,比如说9在[(4, 9),[3, 4, 5, 8, 9, 10]]中的(4,9)里面,再判定8是不否在[3, 4, 5, 8, 9, 10]中,如果8在,那就往下循环,如果8不在,那就再判断6是否在[3, 4, 5, 8, 9, 10]里面,以此类推。我写的是两个循环,在的话我会往下循环,不在的时候,如何循环,求指点
你可以尝试以下的 Python 代码来实现这个功能:
a1 = [
[(1, 6), [1, 2, 5, 6, 7, 10]],
[(2, 7), [1, 2, 3, 6, 7, 8]],
[(3, 8), [2, 3, 4, 7, 8, 9]],
[(4, 9), [3, 4, 5, 8, 9, 10]],
[(5, 10), [1, 4, 5, 6, 9, 10]],
]
a2 = [9, 8, 6, 3, 4, 7, 8, 5, 4]
for item in a2:
for pair, sequence in a1:
if item in pair:
for i in sequence:
if i not in a2:
a2.append(i)
break
break
print(a2)
这段代码首先遍历 a2 中的元素,然后在 a1 中找到对应的元素。当找到对应元素时,遍历该元素对应的序列,如果序列中的某个元素不在 a2 中,则将其添加到 a2,并终止当前循环。这样可以实现你所描述的功能。
|