我想使用"},{"
作为分隔符来拆分字符串。我尝试了各种各样的东西,但都没有。
string="2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3 "
将它拆分成这样的东西:
2,1,6,4,5,1
8,1,4,9,6,6,7,0
6,1,2,3,9
2,3,5,4,3
string.split("},{")
在Python控制台上工作,但如果我编写一个Python脚本,在这个操作中它不起作用。
答案 0 :(得分:12)
您需要将string.split("},{")
的结果分配给新字符串。例如:
string2 = string.split("},{")
我认为这就是你认为它在控制台上运行但在脚本中不起作用的原因。在控制台中它只打印出返回值,但在脚本中你要确保使用返回的值。
答案 1 :(得分:2)
您需要将return
字符串返回给调用者。分配给string
参数不会更改调用者的变量,因此这些更改会丢失。
def convert2list(string):
string = string.strip()
string = string[2:len(string)-2].split("},{")
# Return to caller.
return string
# Grab return value.
converted = convert2list("{1,2},{3,4}")
答案 2 :(得分:0)
你可以分步进行:
它可能不是最具Pythonic或效率的,但它是一般的和可行的。
答案 3 :(得分:0)
我是以脚本的参数形式从控制台获取输入....
所以当我输入{{2,4,5},{1,9,4,8,6,6,7},{1,2,3},{2,3}}时它没有在arg [1]中正确地进行..所以分裂基本上是分裂成一个空字符串...
答案 4 :(得分:0)
如果我从脚本文件(在Python 2.7中)运行以下代码:
的字符串=“2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{ 2,3,5,4,3“
print string.split(“},{”)
然后我得到的输出是:
['2,1,6,4,5,1','8,1,4,9,6,6,7,0','6,1,2,3,9','2 ,3,5,4,3']
以下代码也可以正常使用:
string="2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3 "
def convert2list(string):
string=string.strip()
string=string[:len(string)].split("},{")
print string
convert2list(string)
答案 5 :(得分:0)
使用此: 这将以} {为分隔符来分割字符串,并打印带有换行符的列表。
string = "2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3"
for each in string.split('},{'):
print each
输出:
2,1,6,4,5,1
8,1,4,9,6,6,7,0
6,1,2,3,9
2,3,5,4,3
如果只想打印列表中的拆分项目,则可以使用此简单的打印选项。
string = "2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3"
print string.split('},{')
输出:
['2,1,6,4,5,1', '8,1,4,9,6,6,7,0', '6,1,2,3,9', '2,3,5,4,3']
答案 6 :(得分:0)
非常简单,您必须使用split()方法,并使用“},{”作为分隔符,然后根据参数打印(因为string将是一个列表), 类似于以下内容:
string.split("},{")
for i in range(0,len(string)):
print(string[i])
答案 7 :(得分:-1)
import re
string="2,1,6,4,5,1},{8,1,4,9,6,6,7,0},{6,1,2,3,9},{2,3,5,4,3 "
k=re.split('},{',string)
for i in k :
print(i)
因为是使用多个定界符来指定单独的独立区域之间的边界的情况,所以这里有要骑乘的符号是},{我在我的情况下使用过的这些符号被拆分并给出了列表k = ['2,1,6,4,5,1','8,1,4,9,6,6,7,0','6,1,2,3,9','2, 3,5,4,3']。和列表元素(如果使用for循环打印)。