Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用值更新字符串的最后一个字符_Python - Fatal编程技术网

Python 使用值更新字符串的最后一个字符

Python 使用值更新字符串的最后一个字符,python,Python,我有两条线: input = "12.34.45.362" output = "2" 我希望能够将输入中的362替换为输出中的2 因此,最终结果应为12.34.45.2。我不知道怎么做。非常感谢您的帮助。您可以使用一个简单的正则表达式: import re input_ = "12.34.45.362" output = "2" input_ = re.sub(r"\.\d+$", f".{output}", input_) print(input_) 输出: 12.34.45.2 请

我有两条线:

input = "12.34.45.362"
output = "2"
我希望能够将输入中的
362
替换为输出中的
2


因此,最终结果应为
12.34.45.2
。我不知道怎么做。非常感谢您的帮助。

您可以使用一个简单的正则表达式:

import re

input_ = "12.34.45.362"
output = "2"

input_ = re.sub(r"\.\d+$", f".{output}", input_)
print(input_)
输出:

12.34.45.2
请注意,我还将
input
更改为
input
,因此我们没有隐藏内置函数

也可以使用更简单但不太可靠的模式,完全不考虑周期,只替换结尾处的所有数字:

import re

input_ = "12.34.45.362"
output = "2"

input_ = re.sub(r"\d+$", output, input_)
print(input_)
输出:

12.34.45.2

以防您希望对任何形式的字符串执行此操作,
X.Y.Z.W
,其中
X
Y
Z
W
可能具有非恒定长度:

new_result=“.”.join(您的_输入.split(“.”[:-1])+”+输出
s.join
将使用每个元素之间的字符串
s
将集合连接到一个字符串
s.split
将字符串转换为
列表
,其中每个元素位于给定字符之间
。对列表进行切片(
l[:-1]
)将得到除最后一个元素之外的所有元素,最后字符串连接(如果您确定
输出
str
)将给出结果

逐步分解:

您的输入=“12.34.45.362”
您的_输入。拆分(“.”)#=[“12”、“34”、“45”、“362”]
您的输入。拆分(“.”[:-1]#=[“12”、“34”、“45”]
“.join(你的输入.分割(“.”[:-1])#=”12.34.45”
“.join(您的_输入.split(“.”[:-1])+”“+output#==”12.34.45.2”

如果您试图在lat中拆分int
只需进行正确的拆分,获取所有内容并进行字符串格式化

i = "12.34.45.362"
r = "{}.2".format(i.rsplit(".",1)[0])
输出

'12.34.45.2'

这篇文章显示了你的零努力或零研究。
后面的最后一个数字可能大小不同,所以假设-3并不总是有效的。你知道更好的方法吗?我刚刚有一个简单的问题,如果想得到输入的
362
,使用slip操作会有效吗?像这样的
input.rsplit(“.”,1)[-1]
@LauraSmith担心这类操作的效率几乎没有意义,但最简单的方法可能是:
input.split(“.”,1)[-1]
您在上面给出的输入上测试了它吗?我试过了,但没用忘记了两个已经修改过的句号。