在学校当班长有时候需要使用QQ群接龙统计,但这个该死的QQ群接龙没法自定义接龙格式而且设置填写人名单还挺麻烦,对我统计未接龙成员名单造成了挺大的困扰(毕竟不想麻烦同学在名字前加个学号什么的,就只让他们接龙个名字就可_(:з」∠)_)
所以我拿半小时写了个小程序来帮我统计一下名单(我真是闲的蛋疼)
代码如下
import xlrd as xlrd
import re
finish_data = xlrd.open_workbook('work/finish.xlsx')
source_data = xlrd.open_workbook('work/source.xlsx')
sheet = finish_data.sheet_by_name('Sheet1')
source_sheet = source_data.sheet_by_name('Sheet1')
# print(sheet.ncols)
# print(sheet.col_values(0))
finish_name_list = sheet.col_values(0)
source_name_list = source_sheet.col_values(0)
print(source_sheet.nrows)
# 初始化已接龙名单,返回列表
def initialize_list(name_list):
name = []
pattern = re.compile('[\u4e00-\u9fa5]{2,3}')
for i in range(sheet.nrows):
name.append(pattern.search(name_list[i]).group(0))
return name
# 初始化所有需接龙名单,返回字典
def initialize_dict(dest_sheet, name_list):
name = {}
pattern = re.compile('[\u4e00-\u9fa5]{2,3}')
for i in range(dest_sheet.nrows):
new_dict = {pattern.search(name_list[i]).group(0): 0}
name.update(new_dict)
return name
source_name = initialize_dict(source_sheet, source_name_list)
finish_name = initialize_list(finish_name_list)
for i in range(sheet.nrows):
source_name[finish_name[i]] = 1 # 完成的人 字典的值为1
# print(source_name.items())
for name in source_name:
if source_name[name] == 0:
print(name)
只需要两个表格就可以统计出来了,第一个是需接龙人的名单(我排成一列),第二个是已接龙人的名单(这个QQ可以直接导出,我也只排成一列)