如何在python中将两个字符串的部分连接在一起
我有以下两个如何在python中将两个字符串的部分连接在一起,python,string,Python,String,我有以下两个字符串: request= "1/1/1.3.45.3.6/3/4 reply= "1/2/3" 我想返回一个新的字符串,它将请求的1.3.45.3.6与回复的2连接起来,以返回包含字符串的列表 输出应为列表: result= ["1.3.45.3.6.2"] 我有下面的方法,那不行。 方法的输入都是字符串 def concatentatestring(request, response): oidStatusValueList = [f"{i.split('/')[2]
字符串
:
request= "1/1/1.3.45.3.6/3/4
reply= "1/2/3"
我想返回一个新的字符串
,它将请求
的1.3.45.3.6
与回复
的2
连接起来,以返回包含字符串的列表
输出应为列表
:
result= ["1.3.45.3.6.2"]
我有下面的方法,那不行。
方法的输入都是字符串
def concatentatestring(request, response):
oidStatusValueList = [f"{i.split('/')[2]}.{j.split('/')[2]}" \
for i in request for j in response \
if (i.split('/')[1] == j.split('/')[1]) ]
添加两个字符串可以使用+
操作符或使用f字符串来完成(我不认为有太多性能差异)
您可以使用所使用的split
方法拆分字符串,然后如果请求和响应的格式始终相同,则可以得到拆分请求的2元素和拆分响应的1元素
def addstring(request, response):
return [request.split('/')[2] + '.' + response.split('/')[1]]
添加两个字符串可以使用+
操作符或使用f字符串来完成(我不认为有太多性能差异)
您可以使用所使用的split
方法拆分字符串,然后如果请求和响应的格式始终相同,则可以得到拆分请求的2元素和拆分响应的1元素
def addstring(request, response):
return [request.split('/')[2] + '.' + response.split('/')[1]]
不要使用列表理解,因为您不是在重复请求和响应
>> request= "1/1/1.3.45.3.6/3/4"
>>> reply= "1/2/3"
>>> [f"{request.split('/')[2]}.{reply.split('/')[1]}"]
['1.3.45.3.6.2']
因此,您的concatentatestring
函数如下所示
>>> def concatentatestring(request, response):
... return [f"{request.split('/')[2]}.{response.split('/')[1]}"]
...
>>>
>>> concatentatestring(request, reply)
['1.3.45.3.6.2']
不要使用列表理解,因为您不是在重复请求和响应
>> request= "1/1/1.3.45.3.6/3/4"
>>> reply= "1/2/3"
>>> [f"{request.split('/')[2]}.{reply.split('/')[1]}"]
['1.3.45.3.6.2']
因此,您的concatentatestring
函数如下所示
>>> def concatentatestring(request, response):
... return [f"{request.split('/')[2]}.{response.split('/')[1]}"]
...
>>>
>>> concatentatestring(request, reply)
['1.3.45.3.6.2']
您正在迭代您编写的for循环中字符串中的每个字母
我相信这可以满足您的要求:
request= "1/1/1.3.45.3.6/3/4"
reply= "1/2/3"
def concatentatestring(request, response):
request_splited=request.split('/') # =["1","1","1.3.45.3.6","3","4"]
response_splited=response.split('/') # =["1","2","3"]
if request_splited[1] == response_splited[1]:
return [f'{request_splited[2]}.{response_splited[1]}']
else:
...
您正在迭代您编写的for循环中字符串中的每个字母
我相信这可以满足您的要求:
request= "1/1/1.3.45.3.6/3/4"
reply= "1/2/3"
def concatentatestring(request, response):
request_splited=request.split('/') # =["1","1","1.3.45.3.6","3","4"]
response_splited=response.split('/') # =["1","2","3"]
if request_splited[1] == response_splited[1]:
return [f'{request_splited[2]}.{response_splited[1]}']
else:
...
您的代码没有完全做到这一点,因为您需要正确地遍历字符串。您还应该在列表理解之前拆分它们。要同时使用索引和该索引处的值,您可以使用枚举
,最后,您应该检查以确保尚未到达字符串的末尾,否则可能会导致错误
这就是您正在寻找的:
request = "1/1/1.3.45.3.6/3/4"
reply = "1/2/3"
def concatenateStrings(request, response):
reqs = request.split("/")
resps = response.split("/")
oidStatusValueList = [f"{reqs[i+1]}.{resps[j+1]}" \
for i, req in enumerate(reqs) for j, resp in enumerate(resps) \
if (req == resp and i<len(reqs)-1 and j<len(resps)-1) ]
return oidStatusValueList
result = concatenateStrings(request, reply)
print(result)
您的代码没有完全做到这一点,因为您需要正确地遍历字符串。您还应该在列表理解之前拆分它们。要同时使用索引和该索引处的值,您可以使用枚举
,最后,您应该检查以确保尚未到达字符串的末尾,否则可能会导致错误
这就是您正在寻找的:
request = "1/1/1.3.45.3.6/3/4"
reply = "1/2/3"
def concatenateStrings(request, response):
reqs = request.split("/")
resps = response.split("/")
oidStatusValueList = [f"{reqs[i+1]}.{resps[j+1]}" \
for i, req in enumerate(reqs) for j, resp in enumerate(resps) \
if (req == resp and i<len(reqs)-1 and j<len(resps)-1) ]
return oidStatusValueList
result = concatenateStrings(request, reply)
print(result)
更新了问题中的代码。这是一个打字错误。没问题,但既然你总是保证有一个单一元素的列表(如果我读对了的话),为什么还要麻烦把它列成一个列表呢print(f“{request.split('/')[2]}.{response.split('/')[1]}”)
提供所需的输出,无需迭代。如何确定字符串的哪些部分应合并?我想使用list@LauraSmith查看我的答案。更新了问题中的代码。这是一个打字错误。没问题,但既然你总是保证有一个单一元素的列表(如果我读对了的话),为什么还要麻烦把它列成一个列表呢print(f“{request.split('/')[2]}.{response.split('/')[1]}”)
提供所需的输出,无需迭代。如何确定字符串的哪些部分应合并?我想使用list@LauraSmith看看我的答案,比如,在将请求和应答字符串连接在一起之前,我还需要检查它们的第二个索引是否相等。我该怎么做?如果他们不平等呢?我对响应进行了编辑,以检查它们是否相等。例如,在将请求和应答字符串连接在一起之前,我还需要检查它们的第二个索引是否相等。我该怎么做?如果他们不平等呢?我编辑了回复以检查这一点,但没有说明它们是否不相等