将字符串重新排列到2D阵列python



我使用urllib后有以下字符串:

459,2277,617459268n14619,99,19600737n11297,99,18666551n16603,99,19761406n12660,99,28741324n4543

使用替换和拆分后:

data = data.replace('\n', ',').split(',')
['459', '2277', '617459268', '14619', '99', '19600737', '11297', '99', '18666551', '16603', '99', '19761406', '12660', '99', '28741324', '4543']

但是,我想获得以下2D数组:

459 2277 617459268
14619 99 19600737
11297 99 18666551...

有没有办法将此1D数组分解为2D数组,而无需使用numpy

当我说2D数组时,是指每行是1x3列表时的列列表。

简单的方法将不胜感激。

谢谢。

不要将您的"行定界符"替换为"列定界符"。相反,为了在行定界线上拆分字符串。然后在列定界符上拆分每一行。

如果您的输入具有新的线字符:

rows = data.split()

如果您的输入具有字面的后斜线,则是字母n,而不是newline字符:

rows = data.split('\n')

无论哪种方式,现在您都可以在逗号上拆分每一行:

matrix = [row.split(',') for row in rows]

将此str保存到字符串,如s:

s='''459,2277,617459268n14619,99,19600737n11297,99,18666551n16603,99,19761406n12660,99,28741324n4543'''
for i in s.split('n'):
    print (i)

459,2277,617459268
14619,99,19600737
11297,99,18666551
16603,99,19761406
12660,99,28741324
4543

或者如果您想打印而没有,

for i in s.replace(',' , ' ').split('n'):
    print (i)

459 2277 617459268
14619 99 19600737
11297 99 18666551
16603 99 19761406
12660 99 28741324
4543

最新更新