计算重复的字符串,并将计数附加到Python中的每一行字符串

时间:2014-06-24 17:48:03

标签: python python-2.7

我有一个文本文件输出,格式如下:

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

1 个答案:

答案 0 :(得分:0)

在换行符上拆分输入文件,然后遍历文件中的行。如果文本文件采用您描述的格式,则使用regex library提取括号内的字符串可能是明智的。将每一行存储在字典中,并将该行作为键,并将该行的出现次数作为值。遇到新行时(尚未在字典中),将其存储在值为1的字典中。否则,只需增加该行的字典键的值即可。

最后,执行dictionary sort by value并输出字符串。