如何分割这个字符串并追加到列表?



我在python代码中有这个字符串:

String = "{a,b,c}{d,e,f}{g,h,i}"

我想把这个字符串转换成一个像这样的列表:

list =[{a,b,c},{d,e,f},{g,h,i}]

删除前后大括号,然后使用'}{'作为分隔符将字符串分成几组。使用','作为分隔符,将每一组进一步分开,形成一个集合。

String = "{a,b,c}{d,e,f}{g,h,i}"
result = [set(g.split(",")) for g in String[1:-1].split("}{")]
print(result)
[{'c', 'a', 'b'}, {'e', 'd', 'f'}, {'g', 'h', 'i'}]

注意,为了保持组内元素的顺序,不能转换为集合。直接使用分割的结果:

result = [g.split(",") for g in String[1:-1].split("}{")]
print(result)
[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

我还假设您打算在您的预期输出

中的字母周围加上引号,否则无效。

首先允许我修复您的列表,它似乎是二维列表,并将每个字符用单引号括起来:

>>> string = "[['a','b','c'],['d','e','f'],['g','h','i']]"
>>> import ast
>>> list = ast.literal_eval(string)
>>> type(list)
<type 'list'>
>>> list[0][1]
'b'

这里我使用ast的literal_eval,而您可以使用eval获得相同的结果,然而,eval是危险的,特别是如果您不相信用户的输入。

相关内容

  • 没有找到相关文章

最新更新