背景
在看花花酱的讲解时,我发现他的视频是按照两种方式分类的:
- 第一是按视频类别分,比如Search、DP、Tree等
- 第二是按他发布的顺序
但是花花酱并没有按照题号来进行规整。

所以我决定用python写个小脚本进行一些重新排序。
分析数据
首先将列表copy进txt文件中进行分析。

可以看到都是用'\t'进行分隔的,goodnews
于是我们读取文件,将每一行用'\t'分开
排序
with open("新建文本文档.txt", 'r', encoding='utf-8') as f:
content_list = f.readlines()
res = []
for i in content_list:
tmp = i.split('\t')
res.append(tmp)
接着我们发现问题的痛点在于,第0列是排好序的,我们想要针对第一列的排序列表。
new_res = sorted(res, key=lambda x: int(x[1].split('.')[0]))
这里lambda x: int(x[1].split('.')[0])是提取第一列的元素,第一列我们注意到并不是int类型,而是str,这样排序的效果是1、10、100、1000,不符合预期,于是用 .分开并转换为int类型
这里需要注意的是sorted()不对原对象进行修改,故需要将其赋值
P.S.sort()函数可以直接在原对象上进行修改
写入csv
with open('new.csv', 'w+', newline='') as csvfile:
spamwriter = csv.writer(csvfile, dialect='excel')
for content in new_res:
line_list = content.split('\t')
spamwriter.writerow(line_list)
效果:

美汁汁儿
网友评论