panghuahua2017 2022-04-13 10:30 采纳率: 57.1%
浏览 83
已结题

python 指定索引对列表排序,遍历


# 数据如下:
a = [
    [1093, 19, [811, 814, 817]],
    [996, 23, [1, 4, 7]],
    [1069, 19, [811, 814, 817]]
]

"""
期待实现效果一:对a进行排序
1.依据a[0][1],a[1][1],a[2][1]的大小,即(19,23,19)从大到小排序,能确定排在第一个的是a[1],也就是 [996, 23, [1, 4, 7]],
2.但a[0][1],a[2][1]数值一样,19,19,这时再比较a[0][0],a[2][0]的大小,即(1093,1069),小的排前,
3.重新排序后a的数据如下:
"""
a_rank= [
    [996, 23, [1, 4, 7]],
    [1069, 19, [811, 814, 817]],
    [1093, 19, [811, 814, 817]]
]

"""
期待实现效果二:遍历a_rank:
1.list = [x , y]
2.x依次为a_rank[0][0],a_rank[1][0],a_rank[2][0],既996,1069,1093
3.y依次为a_rank[0][2][0],a_rank[1][2][0],a_rank[2][2][0],a_rank[0][2][1],a_rank[1][2][1]...既1,811,811,4,814...
4.最终期待的遍历结果如下:
"""

list= [996,1]
list= [1069,811]
list= [1093,811]

list= [996,4]
list= [1069,814]
list=  [1093,814]

list= [996,7]
list= [1069,817]
list= [1093,817]

#该怎么实现呢?需要用什么第三方库么

展开全部

  • 写回答

2条回答 默认 最新

  • 貮叁 2022-04-13 14:02
    关注

    2.如果数值一样(19,19),再比较a[1][0],a[2][1]的大小,即(1069,1093),小的排前
    这个就有点看不懂了,哪里来的数值一样(19,19),a[1][0],a[2][1]好像也不是(1069,1093)?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    panghuahua2017 2022-04-13 14:10

    抱歉,前面问题没有描述清楚,重新编辑了,麻烦您看下。

    回复
    貮叁 回复 panghuahua2017 2022-04-13 14:40

    for i in range(3):
        flag=1
        for j in range(3):
            if a[i][1]<a[i+1][1]:
                a[i],a[i+1] = a[i+1],a[i]
                flag=0
            if a[i][1]==a[i+1][1]:
                if a[i][0]>a[i+1][0]:
                    a[i],a[i+1]=a[i+1],a[i]
        if(flag):
            break
    for i in range(3):
        for j in range(3):
            x = a[j][0]
            y = a[j][2][i]
            alist = [x,y]
            print(alist)
    

    如有用请采纳

    回复
    panghuahua2017 回复 貮叁 2022-04-13 17:55

    a = [[1111, 18, [847, 850, 853]], [1166, 19, [811, 814, 817]], [1172, 23, [1, 4, 7]]]

    比如这组数据,就无法实现需求。

    回复
    展开全部4条评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月15日
  • 已采纳回答 4月13日
  • 赞助了问题酬金5元 4月13日
  • 修改了问题 4月13日
  • 展开全部
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部