首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中对数字进行分隔和排序?

如何在python中对数字进行分隔和排序?
EN

Stack Overflow用户
提问于 2019-10-30 21:27:48
回答 2查看 66关注 0票数 0

给定一个包含整数的变量与规定的数字0(零)在变量中是一个数字与另一个数字之间的分隔符。这些数字将按数字本身中的数字进行分隔和排序。在此之后,来自排序的数字将被重新联接,而不是以整数的形式与输出分开。创建一个方法/函数,该方法/函数只接受一系列数字的参数,并生成如上所述的输出。

代码语言:javascript
复制
def sort(nums):
    for i in range (15):
        minpos = 1
        for j in range (i,6):
            if nums[j] < nums[minpos]:
                minpos = j

        temp = nums[i]
        nums[i] = nums[minpos]
        nums[minpos] = temp

nums = [5,9,5,6,5,6,0,1,5,9,4,6,6,0,5,6]
sort(nums)

print(nums)

输出应为55566914566956,但实际输出为5、5、5、5、6、6、9、0、1、5、9、4、6、6、0、6

EN

回答 2

Stack Overflow用户

发布于 2019-10-30 21:38:24

您可以尝试以下函数:

代码语言:javascript
复制
def sort(nums):
    curr = []
    ret = ''
    for i in nums:
        if i == 0:
            ret += ''.join(map(str, sorted(curr)))
            curr = []
        else:
            curr.append(i)
    ret += ''.join(map(str, sorted(curr)))
    return ret

print(sort([5,9,5,6,5,6,0,1,5,9,4,6,6,0,5,6]))

打印:

代码语言:javascript
复制
55566914566956
票数 0
EN

Stack Overflow用户

发布于 2019-10-30 21:43:07

代码语言:javascript
复制
def sort(nums):
  result = list()
  sub_array = list()
  for i in nums:
    if i == 0:
      # sort sub array and append it to result
      sub_array.sort()
      result.extend(sub_array)
      sub_array = list()
    else:
        sub_array.append(i)

  # ensure that the last sub_array is also treated 
  sub_array.sort()
  result.extend(sub_array)

  return result

nums = [5,9,5,6,5,6,0,1,5,9,4,6,6,0,5,6]
result = sort(nums)

print(result)

最简单的方法是遍历列表并创建一个数字子数组,直到找到一个'0‘。此时,只需对子数组进行排序,将其附加到结果列表中,然后继续,直到输入字符串的末尾。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58626457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档