[英]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.