Python中的字符串分隔符

时间:2010-11-25 00:34:46

标签: python

我想使用"},{"作为分隔符来拆分字符串。我尝试了各种各样的东西,但都没有。

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脚本,在这个操作中它不起作用。

8 个答案:

答案 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)

你可以分步进行:

  1. 以逗号分割,以获得“{...}”字符串。
  2. 删除前导和尾随花括号。
  3. 它可能不是最具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循环打印)。