鱼C论坛

 找回密码
 立即注册
查看: 2061|回复: 1

[已解决]数字对应问题

[复制链接]
发表于 2023-3-26 19:01:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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]里面,以此类推。我写的是两个循环,在的话我会往下循环,不在的时候,如何循环,求指点
最佳答案
2023-3-26 19:09:46

你可以尝试以下的 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,并终止当前循环。这样可以实现你所描述的功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-26 19:09:46 | 显示全部楼层    本楼为最佳答案   

你可以尝试以下的 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,并终止当前循环。这样可以实现你所描述的功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 04:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表