Добавление элементов перед нужным номером в списке - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь нарезать список чисел определенным образом. Я хочу, чтобы моя программа вставляла пробел каждый раз, когда он сталкивается с 0. fe Ввод "01365400606", и мой вывод должен быть

[0, 1, 3, 6, " ", 5, 4, 0, 0, " ", 6, 0, 6]

, но мой вывод [0, 1, 3, ' ', 5, 4, 0, ' ', 6, 0, 6].

Проблема в том, что моя функция заменяет числа и помещает " " в это место. Я хочу, чтобы он ставился перед нужным номером и не удалял элементы из списка.

Вот код:

number0 = "01365400606"

def NumberCutter(number):
    numberList = []
    numberListSolution = []
    count = 0

    for e in number:
        e = int(e)
        numberList.append(e)       

    for e in numberList:
        count += 1
        if count % 4 == 0:
            numberListSolution.append(" ")
        else:
            numberListSolution.append(e)

    return numberListSolution

print(NumberCutter(number0))

1 Ответ

0 голосов
/ 20 октября 2019

Я думаю, что вы пытаетесь это:

number0 = "01365400606"

def NumberCutter(number):
    numberList = []
    numberListSolution = []
    count = 0

    for e in number:
        e = int(e)
        numberList.append(e)       

    for e in numberList:
        count += 1
        numberListSolution.append(e) # Always adding the number
        if count % 4 == 0:
            numberListSolution.append(" ") # Add space if needed after the number
    return numberListSolution

print(NumberCutter(number0))

Обновление

Я думаю, что это решение выглядит лучше и довольно читабельно:

def NumberCutter(number):
     integers = [int(i) for i in number] # Convert the str to list of integers
     spaces = len(integers) # Count how many spaces should be in the list
     for i in range(1,spaces+1):
         integers.insert(((i)*4) + (i-1), ' ') # Insert space in the right place
     return integers

Объяснение: индексыиз пробелов должно быть 4, 9, 14, 19

, поэтому значение (i*4) + (i + 1) позволяет получить эти продолжения чисел

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