国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python 中列表怎么分區間統計

瀏覽:141日期:2022-09-12 15:16:31

問題描述

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 的頻數...

我這么寫對么,應該怎么寫呢?

問題解答

回答1:

# code for python3from itertools import groupbylst= [ 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: 150-99: 10100-149: 15150-199: 8200-249: 2250-299: 5300-349: 1400-449: 3450-499: 1800-849: 11550-1599: 11700-1749: 22600-2649: 39150-9199: 219750-19799: 163350-63399: 2

不要使用內建函數的名字: list 作為變數名

你想要的區間重疊了, 比如說元素 50 就不知道要分在 0-50 還是 50-100 了

存取字典應該用 [] 而不是 ()

我回答過的問題: Python-QA

回答2:

for i in list i是list中的內容,應該是for I in range(len(list))

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 重庆市| 乌拉特中旗| 昭通市| 杭州市| 丰顺县| 茂名市| 平原县| 田阳县| 宜都市| 龙海市| 星座| 图们市| 甘泉县| 嘉义县| 石嘴山市| 鹤庆县| 揭阳市| 沅江市| 沁水县| 扎兰屯市| 冀州市| 伊宁市| 井冈山市| 大城县| 镇赉县| 望奎县| 临泽县| 和平区| 冀州市| 凉城县| 霍州市| 宁城县| 万源市| 论坛| 普洱| 云阳县| 南丰县| 晋中市| 富裕县| 蒙自县| 逊克县|