value = "[new=user,pass=h[]@,repalce=que]"
def func(x):
n=len(x)
x=list(x)
s=e=-1
for i in range(0,n-2,1):
if x[i]=='[' and x[i+1]!=']' and x[i+2]!='@':s=i
if x[i]==']' and x[i-1]!='[' and x[i+1]!='@':e=i
x[s]=x[e]=''
x=''.join(x)
x=x.split(',')
return x
print(func(value))
6条答案
按热度按时间u3r8eeie1#
您可以按如下方式使用拆分方法:
split方法将您要拆分句子的字符作为参数。
5lhxktic2#
在这种特殊情况下,可以通过以下命令执行此操作
这样你将首先去掉括号(第一个和最后一个字符),然后用逗号分隔。我不认为有一个更优雅的方法,因为这是一个相当罕见的情况。我会建议加载列表作为列表或其他变量在他们的正确格式,并避免改变类型。
8cdiaqws3#
可以使用字符串拆分
请注意
list
是一个类型。我建议不要用它作为变量名。3gtaxfhh4#
你可以使用如下的列表解析来实现:
这仅适用于此特定情况。
此外,这里没有"类型转换
odopli945#
清理字符串,然后通过string. split()将字符串转换为列表
输出编号
cotxawn76#
我假设
[]@
不应该被当作列表,所以这是我的解决方案,也许使用regex会更好,但无论如何。