在python中如何统计出range的每个数在list中出现的次数呢?

比方说我的list是 [1,1,1,2,3,2,1,4,5,6]

我的range是0<=x<=10

然后我想要得到的output是 [0,4,2,1,1,1,1,0,0,0,0]

那在python中这个code应该怎么写呢?

(想了好几天了 实在是想不出来了TT

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

r = list(range(11))

output = [li.count(x) for x in r]

print(output)

你这个 range 范围大吗?

定义一个数组11个元素,用下标的值代表0~10,如果是0在下标为0的元素加一,为1的时候在下标为1的元素加一,以此类推就可以了

试下这两句,用列表推导式的写法:
 

 lis1 = [1,1,1,2,3,2,1,4,5,6]
 
 [lis1.count(i) for i in range(0,11)]
Out[2]: [0, 4, 2, 1, 1, 1, 1, 0, 0, 0, 0]

 

1. 先统计出原list中各元素出现的次数: 声明个字典,然后循环list,字典的key为list中的元素,value为该key出现的次数,如果字典中不存在该元素,则 value默认为1,否则+1 2. 再声明一个列表result,循环range(0,11),每次用当前循环元素作为字典的键从字典中获取值,往result中add,未获取到值则默认add(0)

1. 先统计出原list中各元素出现的次数: 声明个字典,然后循环list,字典的key为list中的元素,value为该key出现的次数,如果字典中不存在该元素,则 value默认为1,否则+1 2. 再声明一个列表result,循环range(0,11),每次用当前循环元素作为字典的键从字典中获取值,往result中add,未获取到值则默认add(0)

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632