我有一个文本文件输出,格式如下:
Line[0]: ('["\'AA\'"]', '["\'BB\'"]', '["\'CC\'"]')
Line[1]: ('["\'XYZ\'"]', '["\'YY\'"]', '["\'ZZ\'"]')
Line[2]: ('["\'PP\'"]', '["\'QQ\'"]', '["\'RR\'"]')
Line[3]: ('["\'XYZ\'"]', '["\'YY\'"]', '["\'ZZ\'"]')
Line[4]: ('["\'PP\'"]', '["\'QQ\'"]', '["\'RR\'"]')
Line[5]: ('["\'PP\'"]', '["\'QQ\'"]', '["\'RR\'"]')
Line[6]: ('["\'AA\'"]', '["\'BB\'"]', '["\'CC\'"]')
Line[7]: ('["\'XYZ\'"]', '["\'YY\'"]', '["\'ZZ\'"]')
我想在括号中找到重复的字符串,计算重复的字符串并按降序对它们进行排序,从而消除冗余的字符串。我试图寻找使用计数器方法描述的类似帖子,但无法在此上下文中使用。我希望我的输出如下所述:
Line[Num]
也是文本文件的一部分
预期输出:
Line[0]: ('["\'XYZ\'"]', '["\'YY\'"]', '["\'ZZ\'"]') Count=3
Line[1]: ('["\'PP\'"]', '["\'QQ\'"]', '["\'RR\'"]') Count =3
Line[2]: ('["\'AA\'"]', '["\'BB\'"]', '["\'CC\'"]') Count= 2
答案 0 :(得分:0)
在换行符上拆分输入文件,然后遍历文件中的行。如果文本文件采用您描述的格式,则使用regex library提取括号内的字符串可能是明智的。将每一行存储在字典中,并将该行作为键,并将该行的出现次数作为值。遇到新行时(尚未在字典中),将其存储在值为1的字典中。否则,只需增加该行的字典键的值即可。
最后,执行dictionary sort by value并输出字符串。