python中列表用某个数字出现的次数_关于python统计一个整数列表中不同数值种类数的问题。...

问 题

下面这段代码中,kind_num用于统计那个整数列表中有几种不同数值的整数。

class Solution(object):

def distributeCandies(self, candies):

"""

:type candies: List[int]

:rtype: int

"""

loc = len(candies)

mol = loc % 2

if not (2 <= loc <= 10000) or mol != 0:

return 'wrong length of array'

for num in candies:

if not (-10000 <= num <= 10000):

return 'wrong element in array'

kind_num = 0

sis_num = loc / 2

for candy in candies:

kind_num += 1

while True:

try:

candies.remove(candy)

print candies

except ValueError:

break

if kind_num > sis_num:

return sis_num

elif kind_num < sis_num:

return kind_num

else:

return sis_num

s = Solution()

print s.distributeCandies([1,1,2,2,3,3])

但是第二个for循环,没有取完candies里面的值就提前退出了,这是为什么???

bVPkCa?w=645&h=236

解决方案

在循环里不要去remove

如果你仅仅是想实现统计不同种类的值

#统计出现次数

lst = [1,1,2,2,3,3,4,4,5,6]

print len(set(lst))

#统计每种各出现几次

from collections import Counter

print dict(Counter(lst))

wx.jpg

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值