网站地图 联系我们

学习python首选-实战python学习班,专注于python高级工程师培养,python课程:包括Python核心编程技术、全栈开发、网络爬虫、人工智能等。python全栈工程师+提高工作经验,获取免费试听课程!
当前位置: python培训 > python学习 > 常见问题 > 正文

for循环方式完成列表分区间统计效果报错,求解

来源:肚皮舞 浏览量: 发布日期:20-08-09 08:36:52 调整字体大小【 【所属栏目:常见问题】

  for循环方式完成列表分区间统计效果报错,求解

  list= [

  ...,

  2648, 2648, 2648, 63370, 63370, 425, 425, 120,

  120, 217, 217, 189, 189, 128, 128, 115, 115, 197,

  19752, 152, 152, 275, 275, 1716, 1716, 131, 131,

  98, 98, 138, 138, 277, 277, 849, 302, 152, 1571,

  68, 68, 102, 102, 92, 92, 146, 146, 155, 155,

  9181, 9181, 474, 449, 98, 98, 59, 59, 295, 101,

  ...

  ]

  for i in list:

  if int(i/50)+1 not in dic:

  dic(int(i /50)+1)=list.count(i)

  else:

  dic(int(i /50)+1)+=list.count(i)

  我这么写总是报错,我想以 50bp 为一个区间进行统计,即统计长度在 0-50 的频数,50-100 的频数...

  我这么写对么,应该怎么写呢?

  # code for python3

  from itertools import groupby

  lst= [

  2648, 2648, 2648, 63370, 63370, 425, 425, 120,

  120, 217, 217, 189, 189, 128, 128, 115, 115, 197,

  19752, 152, 152, 275, 275, 1716, 1716, 131, 131,

  98, 98, 138, 138, 277, 277, 849, 302, 152, 1571,

  68, 68, 102, 102, 92, 92, 146, 146, 155, 155,

  9181, 9181, 474, 449, 98, 98, 59, 59, 295, 101, 5

  ]

  for k, g in groupby(sorted(lst), key=lambda x: x//50):

  print('{}-{}: {}'.format(k*50, (k+1)*50-1, len(list(g))))

  結果:

  0-49: 1

  50-99: 10

  100-149: 15

  150-199: 8

  200-249: 2

  250-299: 5

  300-349: 1

  400-449: 3

  450-499: 1

  800-849: 1

  1550-1599: 1

  1700-1749: 2

  2600-2649: 3

  9150-9199: 2

  19750-19799: 1

  63350-63399: 2

  我回答過的問題: Python-QA

  for i in list i是list中的内容,应该是for I in range(len(list))

标签:
肚皮舞新闻动态News Center

肚皮舞视频

肚皮舞培训课程

联系卡伊丝contact us
联系我们
python培训「零基础入门到精通」python人工智能编程培训班-0798wz.com

咨询热线:18301225663