如何为Python脚本输出的维基媒体贡献者名称添加序号?
为维基媒体贡献者名称添加序号的Python实现
嘿,这个需求其实很容易搞定,我给你分享几种实用的实现方式,都是Python里很常用的方法:
方法一:直接循环输出(或处理)
首先假设你已经得到了去重后的名称列表:
unique_names = ["velu", "ramu", "ஆதि"]
用enumerate()函数就能轻松给每个元素加上从1开始的序号,它会同时返回元素的索引(我们设置起始值为1)和对应的名称:
for index, name in enumerate(unique_names, start=1): print(f"{index}.{name}")
运行这段代码就会输出:
1.velu
2.ramu
3.ஆதि
方法二:生成带序号的新列表
如果需要把这些带序号的名称保存成一个新列表(方便后续写入CSV或其他操作),可以用列表推导式:
unique_names = ["velu", "ramu", "ஆதि"] numbered_names = [f"{idx}.{name}" for idx, name in enumerate(unique_names, start=1)]
此时numbered_names的值就是['1.velu', '2.ramu', '3.ஆதि'],直接用这个列表去写入CSV就可以了。
方法三:直接写入CSV文件
如果要把最终结果直接写入CSV,结合你的原有脚本,完整的代码可以这样写:
import csv # 假设这是你去重后得到的名称列表 unique_names = ["velu", "ramu", "ஆதि"] # 生成带序号的名称列表 numbered_names = [f"{idx}.{name}" for idx, name in enumerate(unique_names, start=1)] # 写入CSV,注意指定utf-8编码避免 Tamil 字符乱码 with open("numbered_contributors.csv", "w", newline="", encoding="utf-8") as csv_file: writer = csv.writer(csv_file) # 可选:写入表头 writer.writerow(["序号及贡献者名称"]) # 逐行写入带序号的名称 for item in numbered_names: writer.writerow([item])
小提示
enumerate()的start参数默认是0,所以我们设置start=1就能让序号从1开始,完全符合你要的格式~
内容的提问来源于stack exchange,提问作者info-farmer
相关产品推荐
相关产品推荐

