如何每隔一个数字加 1?
例子:
2323 -> 2424
1112 -> 1213
3912 -> 31013
Run Code Online (Sandbox Code Playgroud)
这就是我现在所拥有的:
def plus_to_every_second(integer):
integer = str(integer)
integer_new = ''
for i in integer:
if integer.find(i) % 2 != 0:
integer_new += str(int(i) + 1)
else:
integer_new += i
return integer_new
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它不起作用。但实际的解决方案是什么?
不要使用find,它只查找第一次出现,而是使用 迭代数字和位置enumerate:
IIUC,你可以这样做:
def add1(n):
return int(''.join(str(int(d)+i%2) for i,d in enumerate(str(n))))
add1(2323)
# 2424
add1(1112)
# 1213
add1(3912)
# 31013
Run Code Online (Sandbox Code Playgroud)
def add1(n):
s = str(n)
out = ''
for i,d in enumerate(s):
out += str(int(d)+i%2)
return int(out)
Run Code Online (Sandbox Code Playgroud)