【问题标题】:Combine two lists and then sort each column合并两个列表,然后对每一列进行排序
【发布时间】:2014-04-24 16:52:10
【问题描述】:

我有一个文件 [姓名年龄标记] 。我已将 Name 的每个值存储在 list1 中。 list2 中的标记。我在 python 中使用 zip 函数合并了两个列表:

 list3 =[]
 list3 = zip(list1,list2)

例如: list3 = ((史蒂夫,32),(大卫,65),(拉姆,43),(玛丽,87)) 现在我想按标记的降序对 list3 进行排序。所以请帮助如何进行此操作。我是 python 新手。 感谢您的时间和考虑。等待回复

【问题讨论】:

  • 变量名应该是描述性的。为什么不用list1 而不是names?而不是list2,为什么不是marks
  • 顺便说一句,在将其分配给zip 之前,您无需执行list3 =[]。我猜你这样做是为了“声明”list3 是一个列表。但是在 Python 中,变量不需要声明;你本可以改用list3 = 2342,一切仍然以同样的方式工作。所以你最好不要在list3 = zip(...之前放任何东西

标签: python


【解决方案1】:

sorted, list.sort 接受可选的key 函数。函数的返回值用于比较。

>>> list3 = [('Steve',32),('David',65),('Ram',43),('Mary',87)]
>>> sorted(list3, key=lambda item: item[1])
[('Steve', 32), ('Ram', 43), ('David', 65), ('Mary', 87)]

>>> sorted(list3, key=lambda item: -item[1]) # negate the return value.
[('Mary', 87), ('David', 65), ('Ram', 43), ('Steve', 32)]

>>> sorted(list3, key=lambda item: item[1], reverse=True) # using `reverse`
[('Mary', 87), ('David', 65), ('Ram', 43), ('Steve', 32)]

【讨论】:

  • 谢谢,它成功了。我想知道我是否有清单:
猜你喜欢
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
  • 2011-01-17
  • 1970-01-01
  • 2023-03-18
  • 2020-03-18
  • 2016-09-23
相关资源
最近更新 更多