如何使用Python对这些数据进行排序?

2024-04-26 14:43:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序,读取包含两列的文本文件。你知道吗

它需要根据第一列中的最后一个字符对第一列进行排序,并输出到一个新文件。如果第一组中的最后一个字符相同,则按第一个字符排序。如果最后一个字符和第一个字符相同,则按中间字符排序。例如,从文件中读取的数据是:

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中使用过它。你知道吗


Tags: 文件数据程序data排序顺序字母字符
1条回答
网友
1楼 · 发布于 2024-04-26 14:43:26

将数据读入一个列表,然后用key=keyfunc排序。请原谅我没有给你一个完整的解决方案,但这闻起来像家庭作业,所以。你知道吗

def keyfunc(s):
    firstword = s.split()[0]
    char1 = firstword[-1]
    char2 = firstword[0]
    char3 = firstword[1] if len(firstword) == 3 else ""
    return char1 + char2 + char3

相关问题 更多 >