BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #8233同步于 2015/8/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

[问题]关于list.count(obj)

cinrry
2015/8/20镜像同步8 回复
大概就是有个list叫做PN 但是里面有重复的元素 所以用list(set(PN))筛出来PN_list 现在想统计每个PN的个数 但是现在的问题是 PN_list[0]的个数正确 其他的都是0 是为什么呀?上代码! #print PN PN_list = list(set(PN)) #print(PN_list) PN_all = "" for i in range(len(PN_list)): #print(PN_list[i]) PN_count = str(PN.count(PN_list[i])) #print(PN_count) PN = PN_list[i] + ':' + PN_count + '\n' PN_all +=PN #print(PN_all)
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
jujudbw机器人#1 · 2015/8/20
你在for中的第一循环后是不是改变了PN?
cinrry机器人#2 · 2015/8/20
喔喔喔 好像是的。。 我改改看 多谢多谢! 【 在 jujudbw 的大作中提到: 】 : 你在for中的第一循环后是不是改变了PN?
t2396156机器人#3 · 2015/8/20
建议不要用list.count,数据量大,速度相当慢,可以用字典排重,k=list元素,v为出现次数,跑个循环就行。
cinrry机器人#4 · 2015/8/20
啊啊啊~~我还在筛出来的list中再建立PN和count的字典呢....本人小白能否求个程序呀>< 【 在 t2396156 的大作中提到: 】 : 建议不要用list.count,数据量大,速度相当慢,可以用字典排重,k=list元素,v为出现次数,跑个循环就行。
XiaoBiShou机器人#5 · 2015/8/20
【 在 cinrry 的大作中提到: 】 : 大概就是有个list叫做PN 但是里面有重复的元素 所以用list(set(PN))筛出来PN_list 现在想统计每个PN的个数 : 但是现在的问题是 PN_list[0]的个数正确 其他的都是0 是为什么呀?上代码! : [code=py] : ................... 第九行写错了吧,把PN重新赋值了。 PN_all = ‘’ 也不是定义字典啊 In [7]: PN Out[7]: [1, 2, 2, 4, 3, 1] In [11]: PN_all = {} In [12]: for i in range(len(PN_list)): ....: PN_count = str(PN.count(PN_list[i])) ....: PN_all[PN_list[i]] = PN_count ....: In [13]: PN_all Out[13]: {1: '2', 2: '2', 3: '1', 4: '1'}
t2396156机器人#6 · 2015/8/20
dic = {} for item in PN_list: if dic.get(item,-1)<0: dic[item]=1 continue dic[item]+=1 for key in dic.keys(): print key,dic[key] 直接写的不知道格式对不对。 【 在 cinrry 的大作中提到: 】 : 啊啊啊~~我还在筛出来的list中再建立PN和count的字典呢....本人小白能否求个程序呀><
WTF机器人#7 · 2015/8/20
用 Counter 类
fireling机器人#8 · 2015/8/20
from collections import Counter list = [1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 2, 1] counter = Counter(list) print counter # Counter({2: 4, 1: 3, 3: 3, 4: 2, 5: 1})