【发布时间】:2014-06-14 23:17:23
【问题描述】:
我正在编写一个读取包含两列的文本文件的程序。
它需要根据其中的最后一个字符对第一列进行排序并输出到一个新文件。如果第一组中的最后一个字符相同,则按第一个字符排序。如果最后一个字符和第一个字符相同,则按中间字符排序。例如,从文件中读取的数据是:
ac 123
aba 456
abd 456
bda 123
baa 123
对于第一行,"a" 是第一个字符,"c" 是最后一个字符,没有中间字符。
输出应如下所示:
aba 456
baa 123
bda 123
ac 123
abd 456
到目前为止,我已经能够读取文件并将其拆分,但是我一直在弄清楚如何按字母顺序对其进行排序。有人可以建议什么对我有帮助吗?
这是我目前的代码:
f = open('example.txt','r')
new = []
for row in f.readlines():
data = row.split()
print(data)
输出如下:
['ac', '123']
['aba', '456']
['abd', '456']
['bda', '123']
['baa', '123']
我的方向正确吗?
我也在阅读一个名为 lambda 的东西,但我不确定它是否有用,因为我从未在 Python 中使用过它。
【问题讨论】:
-
你考虑过
sorted吗? -
这是否允许我按第一组中的特定(第三个)字符对其进行排序?我没想到会这么简单,除非我想多了。
-
如果字符串没有中间字符,而您需要使用中间字符进行决胜局,会发生什么?
-
中间字符的字符串优先于没有中间字符的字符串。
-
@Eric 你必须告诉
sorted你想如何排序,例如使用你提到的lambda。
标签: python sorting split alphabetical