как разделить и отсортировать числа в питоне? - PullRequest
0 голосов
/ 30 октября 2019

Дана переменная, содержащая целые числа с положениями числа 0 (ноль) в переменной, является разделителем между одним числом и другим числом. Числа будут разделены и упорядочены по номерам в самих числах. После этого числа из сортировки будут объединены без разделения с выводом в виде целых чисел. Создайте метод / функцию, которая принимает параметры только серию чисел и производит вывод, как описано выше.

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]

Ответы [ 2 ]

0 голосов
/ 30 октября 2019
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 голосов
/ 30 октября 2019

Вы можете попробовать следующую функцию:

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]))

Печать:

55566914566956
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...