使用两个不同的拆分将字符串分成2d数组

时间:2019-04-14 13:50:22

标签: python arrays python-3.x multidimensional-array split

我正在尝试使用2d数组将值输入CSV。我有一个字符串,以“,”分隔,以分隔值和“;”分隔每一行。

下面的字符串;

text = 536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product;

我希望能够像这样将行拆分为2d数组

arr = reg.split([','][';'])

这样它就这样结束了

arr =[ 
['536924636','www.microsoft.com','http://www.microsoft.com/pkiops/crl/MicW'],
['536924733','www.microsoft.com','http://www.microsoft.com/pkiops/certs/Mi'],
['536924636','www.microsoft.com','http://www.microsoft.com/pkiops/crl/MicW']]

但是尝试此操作时,出现以下错误;

  arr = reg.split([','][';'])
TypeError: list indices must be integers or slices, not str

有人可以帮助我实现这一目标吗?

谢谢

3 个答案:

答案 0 :(得分:0)

一种简单的方法可以是

arr = [i.split(',') for i in text.split(';')]

答案 1 :(得分:0)

函数split()一个字符串分割为一个列表。您不能通过传递两个参数而不是一个参数来使其产生二维。

但是您可以调用两次,每个定界符一次:

>>> text = "536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product;"
>>> [r.split(",") for r in [r for r in text.split(";")]]
[
['536924636', 'www.microsoft.com', 'http://www.microsoft.com/pkiops/crl/MicW'], 
['536924733', 'www.microsoft.com', 'http://www.microsoft.com/pkiops/certs/Mi'], 
['536925898', 'crl.microsoft.com', 'http://crl.microsoft.com/pki/crl/product'], 
['']
]

答案 2 :(得分:0)

x = str(input())
arr  = x.split(";")
finalArr = []
for items in arr:
    arr2 = []
    arr2.append(items)
    finalArr.append(arr2)
print(finalArr)

尝试一下。我希望这是您想要的。