为了账号安全,请及时绑定邮箱和手机立即绑定

Python:拆分未知长度的输入并创建数组

Python:拆分未知长度的输入并创建数组

料青山看我应如是 2021-05-31 09:50:01
在Python中,我将如何创建一个包含以下内容的拆分输入的数组:前任。)(1,2,3)&(6,8,10)&(2,5)&(29,8,6)- 输入将是任意数量的这些元组。-我会在'&'处分开并去掉括号-然后在这种情况下,我想将其转换为数组:array= [[1,2,3], [6,8,10], [2,5], [29,8,6]]
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

如果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]


查看完整回答
反对 回复 2021-06-01
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

你可以试试这个方法:


>>> 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]]


查看完整回答
反对 回复 2021-06-01
?
富国沪深

TA贡献1790条经验 获得超9个赞

如果您需要注意更改输入字符串,这是另一种方法


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]]


查看完整回答
反对 回复 2021-06-01
  • 3 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信