python - 对两个列表进行排序,其中一个列表包含日期(python)

标签 python sorting

好吧,我对 python 还很陌生,希望你能帮助我解决这个问题。

我有两个彼此对应的列表。现在我想以相同的方式对它们进行排序。

我在板上找到了解决方案: Is it possible to sort two lists(which reference each other) in the exact same way?

我现在的问题是,我的列表之一是带有日期的字符串。我想按时间顺序排序,但我不知道如何正确使用关键参数。 这是我的代码:

daten = ["03. Aug 2012", "30. Jul 2012", "25. Jul 2012"]
werte = [10, 35, 22]
daten, werte = (list(t) for t in zip(*sorted(zip(daten, werte), key=lambda x: datetime.datetime.strptime(x[1], "%d. %b %Y"))))

现在我得到一个 TypeError: Must be string, not int

最佳答案

您需要 x[0] 而不是 x[1]:

daten, werte = (list(t) for t in zip(*sorted(zip(daten, werte), key=lambda x : datetime.datetime.strptime(x[0], "%d. %b %Y"))))

关于python - 对两个列表进行排序,其中一个列表包含日期(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25894201/

相关文章:

python - 如何将全局变量传递给另一个函数调用的函数

Python:(子)字符串等价与列表快速成员资格测试

java - 同时对两个数组列表进行排序

arrays - 如果数组有,则可以在 O(n) 中排序

排序列表的 Pythonic 方式

python - 将 Fabric env.hosts 字符串作为变量传递在函数中不起作用

python - 从字符串中删除变音符号以实现搜索功能

python - 使用 pygobject 编写 D-Bus 服务?

javascript - JavaScript 快速排序中的无限递归?

Java - 尝试使用自定义比较器对 LinkedList 进行排序,找不到符号排序