开发者社区> 问答> 正文

Python:将组号的数量减去十位

获取一个数字列表,并将数字按其十位放置,将每十个数字放在它自己的子列表中。

例如:

$ group_by_10s([1, 10, 15, 20])
[[1], [10, 15], [20]]
$ group_by_10s([8, 12, 3, 17, 19, 24, 35, 50])
[[3, 8], [12, 17, 19], [24], [35], [], [50]]
我的方法:

limiting = 10
ex_limiting = 0
result = []
for num in lst:

row = []
for num in lst:
    if num >= ex_limiting and num <= limiting:
        row.append(num)
        lst.remove(num)
result.append(row)
ex_limiting = limiting
limiting += 10

但它返回[[1],[10,20]]。我的方法有什么问题,我该如何解决?

展开
收起
一码平川MACHEL 2019-01-17 16:35:39 1803 0
1 条回答
写回答
取消 提交回答
  • numbers = [8, 12, 3, 17, 19, 24, 35, 50]

    def group_by_10s(numbers):

    arr = []
    for i in range((max(numbers) / 10) + 1):
        arr.append([])
    
    numbers.sort()
    
    for number in numbers:
        if number < 10:
            arr[0].append(number)
        else:
            index = number / 10
            arr[index].append(number)
    
    return arr
    

    print group_by_10s(numbers)

    [[3, 8], [12, 17, 19], [24], [35], [], [50]]

    2019-07-17 23:25:46
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载