fhy0123 2022-05-09 21:25 采纳率: 66.7%
浏览 32
已结题

操作Python列表的一个综合题

循环输入若干组列表+对应权值
如:

请输入列表:[1,3,4,7,9]
请输入权值:10
...
输入q退出

然后把这些大列表都分成邻近两两一组的若干个小列表

[1,3],[3,4],[4,7],[7,9]

最后将这些出现过的小列表中的权值加起来

比如[1,3]在两个不同的列表中出现了(假设输入的列表不会出现两次[1,3]),权值分别是10和30

输入[1,3]
那么就可以输出40

#循环输入
[1,3,4,7,9]
权值=10
#分成[1,3],[3,4],[4,7],[7,9]
[2,4,7,8]
权值=20
[1,3,7,8,10]
权值=30
#输入q结束输入
#输入:
1,3
#输出:
40#(10+30)

4,7;30
7,8;50

请问该如何实现?
如果不用数据库的话可以实现吗?

  • 写回答

4条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    while True:
        s = input('请输入列表:')
        if s.lower()=="q":
            break
        li = eval(s)
        n = int(input('请输入权值:'))
        li2 = []
        for i in range(len(li)-1):
            li2.append([li[i],li[i+1]])
        print(li2)
        dic = {}
        for a,b in li2:
            dic[(a,b)] = a*n+b*n
        print(dic)
        a,b = map(int,input().split(","))
        print(dic.get((a,b),f"没有{a},{b}子列表"))
    
         
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 5月9日