Python 将字符串中的数字加倍并应用它们
例如:`a=“452398”我想取所有的索引(一个接一个的数字),比如(4,2,9)将它们加倍==(8,4,18)Python 将字符串中的数字加倍并应用它们,python,python-3.x,Python,Python 3.x,例如:`a=“452398”我想取所有的索引(一个接一个的数字),比如(4,2,9)将它们加倍==(8,4,18) 下一步检查双精度数字是否大于9,如果需要从9(8,4,9)中减去,最后我想在a(“854398”)中添加数字,它必须是一个字符串。知道怎么做吗 我厌倦了循环使用范围,len skip我把所有的东西都整理好了,直到最后一步,但我无法应用“a”中的数字。所以删除了整个循环:(这就是您所描述的,但您为什么要这样做: a = "452398" a_list = [int(x) for x
下一步检查双精度数字是否大于9,如果需要从9(8,4,9)中减去,最后我想在a(“854398”)中添加数字,它必须是一个字符串。知道怎么做吗
我厌倦了循环使用范围,len skip我把所有的东西都整理好了,直到最后一步,但我无法应用“a”中的数字。所以删除了整个循环:(这就是您所描述的,但您为什么要这样做:
a = "452398"
a_list = [int(x) for x in a]
numbers = [x*2 for x in a_list[::2]]
numbers = [x-9 if x>9 else x for x in numbers]
result = [j for i in zip(numbers,a_list[1::2]) for j in i]
result = map(str, result)
result = ''.join(result)
下面是使用列表理解的方法
A = "452398"
res = "".join([(str(min(int(a) * 2, 9)) if idx % 2 == 0 else a) for idx, a in enumerate(A)])
string
是不可变的,因此首先您应该使用string
a = '452398'
new = list(a)
然后创建一个循环
来执行条件并更改列表中字符的值
for i in range(0,len(new),2):
num = int(new[i]) * 2
if num > 9:
new[i] = num - 9
else:
new[i] = num
现在使用新的字符列表覆盖变量a
的值
a = ''.join(map(str,new))
这是全部代码
a = '452398'
new = list(a)
for i in range(0,len(new),2):
num = int(new[i]) * 2
if num > 9:
new[i] = num - 9
else:
new[i] = num
a = ''.join(map(str,new))
print(a)
其中一个简单的答案可能是
a = '452398'
b = []
for i, x in enumerate(a):
if (i%2 == 0):
res = int(x) * 2
if len(str(res)) > 1:
res = res - 9
b.append(res)
else:
b.append(x)
b = map(str, b)
b = ''.join(b)
print(b)
请编辑问题以显示您尝试过的内容,并显示您遇到的具体障碍。有关更多信息,请参阅。检查双位数是否大于9,如果需要从9中减去,我可以理解。但新代码[i]让我困惑。您可以优雅地解释一下吗?请