繁体   English   中英

在列表中的所需数字前面附加元素

[英]Appending elements in front of a desired number in a list

我正在尝试以特定方式对数字列表进行切片。 我希望我的程序每次遇到 0 时都插入一个空格。fe 输入是"01365400606" ,我的 output 应该是

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

但我的 output 是[0, 1, 3, ' ', 5, 4, 0, ' ', 6, 0, 6]

问题是我的 function 正在替换数字并将" "放在那个地方。 我希望它把它放在所需数字的前面,而不是从列表中删除任何元素。

这是代码:

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

我想你正在尝试这个:

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)的值允许得到这个数字的续集

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM