【发布时间】:2015-04-08 08:59:05
【问题描述】:
好吧,我已经在这家店呆了好几个小时了,我认输并求你怜悯。
目标:我有多个文件(银行对账单下载),我想 合并、排序、删除重复项。
下载格式如下:
"08/04/2015","Balance","5,804.30","Current Balance for account 123S14"
"08/04/2015","Balance","5,804.30","Available Balance for account 123S14"
"02/03/2015","241.25","Transaction description","2,620.09"
"02/03/2015","-155.49","Transaction description","2,464.60"
"03/03/2015","82.00","Transaction description","2,546.60"
"03/03/2015","243.25","Transaction description","2,789.85"
"03/03/2015","-334.81","Transaction description","2,339.12"
"04/03/2015","-25.05","Transaction description","2,314.07"
除了完全不知道我在做什么之外,我的主要问题之一是数值包含逗号。我已经成功地编写了去掉这种“隐藏”逗号的代码,然后去掉引号,这样我就有了一个 CSV... 行。
所以我现在有这种格式的数据
['02/03/2015', ' \t ', '241.25\t ', ' \t ', 'Transaction Details\n', '02/03/2015', ' \t ', ' \t ', '-155.49\t ', 'Transaction Details\n', '03/03/2015', ' \t ', '82.00\t ', ' \t ', 'Transaction Details\n', '03/03/2015', ' \t ', '243.25\t ', ' \t ', 'Transaction Details\n', '02/03/2015', ' \t ', '241.25\t ', ' \t ', 'Transaction Details\n']
我相信这使它几乎准备好对第一个元素进行排序,但我认为它现在是一个长列表,而不是列表列表。
我研究了sorts,发现了lambda...函数,所以我开始实现
new_file_data = sorted(new_file_data, key=lambda item: item[0])
但元素 [0] 只是 BOL 处的 "。
我还注意到我需要指出日期可能不是正确的格式,这导致我产生了这种结构:
sorted(new_file_data, key=lambda d: datetime.strptime(d, '%d/%m/%Y'))
我大致了解了“地图”结构,但不知道如何组合,以便我可以仅引用元素 [0] 以及 如何 来引用它(按日期计算)
现在我在这里,希望有人能帮我克服这个障碍吗? 我认为我需要[有] 更好地拆分列表开始,所以每一行都是一个元素 - 我曾在某一时刻得到一个排序的结果,但所有的字段都聚集在一起,值(排序)然后是日期,然后是单词等
因此,如果有人可以就我失败的列表操作以及如何构建 sort-lambda 提供一些建议。
感谢那些有时间并知道如何回答此类入门查询的人。
【问题讨论】:
标签: python list sorting lambda