【问题标题】:How to sort two lists that correspond? [duplicate]如何对两个对应的列表进行排序? [复制]
【发布时间】:2019-08-01 17:22:15
【问题描述】:

我有两个列表:

names = [sam, tim, ben, jack, frank]
ages = [10, 22, 18, 17, 14]

我要做的是按从大到小对它们进行排序并打印它们,以便它们垂直打印。输出:

tim 22
ben 18
jack 17
frank 14
sam 10

这是我目前所拥有的:

for age, name in zip(ages, names):
  print(age, name)

这会并排打印出两个列表,但是我不确定如何在不弄乱列表关系的情况下从最大到最小对年龄进行排序。在此先感谢,我也是编码新手,所以如果您能解释您的建议,那将很有帮助,谢谢。

【问题讨论】:

    标签: python python-3.x list sorting


    【解决方案1】:

    您可以尝试以下方法吗:

    data = list(zip(names, ages))
    data.sort(key=lambda x: x[1], reverse=True)
    for val in data:
        print(val[0], val[1])
    

    【讨论】:

      【解决方案2】:

      试试这个代码!

      代码:

      names = ['sam', 'tim', 'ben', 'jack', 'frank']
      ages = [10, 22, 18, 17, 14]
      for i in range(0,len(ages)):
          for j in range(i,len(ages)):
              temp_age = ages[i]
              ages[i]=ages[j]
              ages[j]=temp_age
      
              temp_name = names[i]
              names[i]=names[j]
              names[j]=temp_name
      
      print(ages)
      print(names)
      

      输出:

      [14, 17, 18, 22, 10]                                                                                                   
      ['frank', 'jack', 'ben', 'tim', 'sam']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 2018-07-21
        • 2016-03-21
        • 2012-12-10
        • 2019-06-07
        • 2012-11-20
        相关资源
        最近更新 更多