在Python中,我将如何创建一个包含以下内容的拆分输入的数组:
例如。)
(1,2,3)&(6,8,10)&(2,5)&(29,8,6)
-输入的是这些元组的任意数量。
-我在'&'处分割并去掉了括号
-然后我想将其转换为数组 在这种情况下:
array=
[[1,2,3],
[6,8,10],
[2,5],
[29,8,6]]
答案 0 :(得分:0)
如果Something是字符串,则可以执行此操作。
something = "(1,2,3)&(6,8,10)&(2,5)&(29,8,6)"
words = something.split('&')
for i,x in enumerate(words):
words[i] = x.replace('(','').replace(')','')
或使用列表理解而不是for循环
words[:] = [x.replace('(','').replace(')','') for x in words]
答案 1 :(得分:0)
如果您具有这样的刚性结构,则解决方法可能如下
s = "(1,2,3)&(6,8,10)&(2,5)&(29,8,6)"
l = [list(map(int, t[1:-1].split(','))) for t in s.split('&')]
print(l) # [[1, 2, 3], [6, 8, 10], [2, 5], [29, 8, 6]]
首先将字符串用“&”分割,然后将子字符串从第二个开始到结尾,最后一个位置之前一个子字符串,用“,”分隔,map
将它们分隔为int
或任何其他数字类型
答案 2 :(得分:0)
如果需要更改输入字符串,这是另一种方法
data = '(1,2,3)&(6,8,10)&(2,5)&(29,8,6)'
a = []
for i in data.split('&'):
a.append([int(j) for j in i[i.find('(')+1:i.find(')')].split(',')])
print(a) #[[1, 2, 3], [6, 8, 10], [2, 5], [29, 8, 6]]
答案 3 :(得分:0)
You can try this approach:
>>> def to_list(s):
... return [int(i) for i in s.strip('()').split(',')]
...
>>> data = '(1,2,3)&(6,8,10)&(2,5)&(29,8,6)'
>>> [to_list(item) for item in data.split('&')]
[[1, 2, 3], [6, 8, 10], [2, 5], [29, 8, 6]]