python—实战统计用户数量(文件操作、替换、列表、去重、元组)
目标文件:百度网盘
http://pan.baidu.com/s/1kV1gPfT
所求问题为:该文本里,有多少个用户。(要求:输出为一个整数。)
python源码:
root@kali:~/python/laowangpy/datadig# cat 1userid.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
text_userid2 = open('twitterdata.txt').read()#对目标文本进行全部读取,并赋值
#print text_userid2
l = [n for n in text_userid2.split('\r\n')]#对目标文件中所有的\r\n进行分割,每分割一个字符串,累加到列表n中,并赋值给列表l
#print l[0]#打印页列表中第一个元素
i = 0#未去重的字符串初始化数量
n = []#对原数据中的所有"号,使用空白替换,初始化列表n
m = []#存储所有未去重复的用户id值,初始化列表m
while l[i] != "":#不是最后一个空白字符串,则进入
s=l[i].replace('"','')#对原数据中的所有"号,使用空白替换,并赋值给字符数组
n.append(s)#成功替换一个就累加到列表n中
t = s.split(",")#对字符串数组s中所有使用,进行分割
m.append(t[1])#取出每次字符串数组中的第一个元素。即增加所有用户id值,到列表m中
i = i + 1#未去重的所有字符串的数量
setm = set(m)#对读取的所有用户ID值进行去重处理
listsetm = list(setm)#对去重处理后的元组进行转换成列表
j = 0#未去重的用户ID字符串初始化数量
while listsetm[j] != "354828284":#不是最后一个元素值,则进入
j = j + 1#统计所有不重复的用户ID值的数量
#print n
#print setm
#print s
#print t[6]
print j
root@kali:~/python/laowangpy/datadig#
python运行情况(统计不重复的用户数量):
root@kali:~/python/laowangpy/datadig# python 1userid.py
2091
root@kali:~/python/laowangpy/datadig#
可注释打印去重后的元素(以上源码的不注释print setm):
root@kali:~/python/laowangpy/datadig# python 1userid.py
set(['6007202', '148230753', '168121087', '414452126', '191226474', '304190855', '137628229', '234562319', '156627231', '105092350', '181243481', '283930221', '617934582', '482788565', '538506640', '327249908', '387545931', '239274643', '101123239', '718074421', '86906147', '302500566', '144906652', '209575863', '304086725', '273767225', '515367848', '894387696', '572652398', '592762897', '5353462', '490473037', '334763135', '221327341', '191812176', '275131457', '131389516', '425670707', '72539532', '194946515', '122418751', '826823532', '78344158', '182385181', '548420448', '491799659', '102294111', '252178706', '525083464', '58728112', '315887568', '122575093', '705196740', '142595250', '524884552', '717212533', '900204144', '320775708', '217797110', '292201392', '244780328', '543011310', '611292330', '223060403', '335298359', '271199656', '604014311', '573509587', '532049095', '461126605', '89929802', '386899090', '158724526', '409298207', '719554146', '273419410', '771944540', '898768650', '728365034', '866057694', '736115748', '744989226', '595529600', '286281455', '835525759', '447361188', '609009179', '625583858', '200787835', '590921053', '538210167', '5978722', '159045267', '554978137', '148501535', '593260238', '338445141', '477376212', '448427390', '544296591', '167717831', '96441282', '481180973', '210763134', '810673778', '800037570', '204257822', '76091498', '102950464', '542233634', '866127865', '158673711', '360999951', '297455607', '127750310', '829243634', '266035761', '197828440', '191903910', '588458351', '536960555', '110419711', '16694835', '171568839', '588137632', '149790127', '529355658', '393358588', '147916599', '158880272', '617969312', '635496840', '103783828', '30145060', '93142658', '123552500', '352102145', '459182496', '326631886', '899928380', '134990531', '554547081', '165227308', '601024992', '153395912', '283556004', '18514116', '402249720', '723981278', '23045397', '325022007', '609397289', '561117696', '191102907', '228389694', '235977509', '77125586', '549230517', '535150087', '489264948', '410534533', '227294174', '428096035', '403408117', '575441151', '863076925', '211079221', '84062323', '78005456', '861013909', '511817456', '99000180', '316469746', '111768385', '179915689', '895752421', '237609928', '134741458', '359527171', '173019297', '722263922', '119187661', '141704172', '248677567', '421910219', '100970781', '159018407', '607051798', '122912668', '895604118', '590024872', '351546342', '234420105', '16141570', '749353333', '315754550', '433534929', '127253430', '52260485', '175594700', '116636065', '473643340', '270315317', '95124892', '114775357', '137222681', '296255380', '736346743', '144499294', '749494771', '547449871', '305555469', '419883307', '96698920', '133977860', '492145468', '219927012', '191364764', '334998370', '189443692', '199280453', '612489475', '118007711', '251487981', '114181627', '382687015', '117344194', '723977616', '118941040', '448711398', '111907815', '264381452', '548879874', '895511791', '596099558', '393335312', '198533404', '536259576', '163028662', '452871934', '157865444', '524281463', '267143321', '761827074', '521942045', '612556436', '139037093', '497588836', '159824363', '273742287', '187807583', '359409408', '203613986', '213187195', '164637232', '595417313', '246319527', '236345656', '843151574', '182794140', '592489981', '112477673', '439921734', '294110580', '821983346', '146437477', '613963535', '224165127', '560285656', '553388674', '181191209', '379640742', '146705870', '283379025', '389396288', '781612626', '143170428', '516721939', '870085939', '576924865', '590942023', '576258441', '150201178', '576803843', '340884368', '112179688', '194165487', '618291816', '784564699', '826857349', '630123384', '143577181', '533132914', '206893745', '70392032', '293346809', '293767663', '609272455', '133595280', '327264984', '136890876', '519363206', '125178456', '313894240', '394574059', '269252892', '95004027', '860808816', '235520677', '113086307', '485734796', '782398759', '114421462', '278535219', '139824030', '225305029', '802525790', '237795071', '723978769', '611333324', '229394889', '781759891', '549590474', '433438152', '466719007', '155303725', '174346692', '270891142', '626289420', '376636573', '253966594', '458408774', '268231986', '549354440', '579794559', '586577163', '570954814', '509798549', '70708775', '136932364', '339010490', '64170577', '165372614', '132399938', '295384816', '611066343', '154733565', '482888787', '854503297', '782158621', '228691573', '192779642', '72178554', '573392950', '128582521', '287077594', '224640507', '487233459',