将字符串和列表列表更改为字符串

时间:2015-08-05 20:41:26

标签: python string list python-3.x spyder

这是我在名为'output.txt'的输出文件中打印的内容:

5 [[ 1  2  23  12  6]
 [ 3  4 5  6 7]
 [1 1 1  2 1]
 [ 25 26  27 28 29]
 [ 1  1 0 1 3]]

这是我想要的字符串:

5
1 2 23 12 6
3 4 5 6 7
1 1 1 2 1
25 26 27 28 29
1 1 0 1 3

(5是列数和行数) 我尝试过拆分('[]')和“”.join(),但它们都不起作用。我需要用什么代码来改变它?

**列表中的数字是我刚刚编写的随机数

1 个答案:

答案 0 :(得分:1)

如果它在多行字符串(""")中:

>>> data = """5 [[ 1  2  23  12  6]                                                                                                           ...  [ 3  4 5  6 7]
...  [1 1 1  2 1]
...  [ 25 26  27 28 29]
...  [ 1  1 0 1 3]]"""
>>> print ' '.join([item for item in ''.join(data.split('\n')).replace('[[', '\n').replace('[', '').replace(']', '\n').split(' ') if len(item)]).replace('\n ', '\n').replace('\n\n', '')
5 
1 2 23 12 6
3 4 5 6 7
1 1 1 2 1
25 26 27 28 29
1 1 0 1 3
>>> 

使用joinreplacesplit来解析数据。

如果它在列表中:

>>> data = [[1, 2, 23, 12, 6], [3, 4, 5, 6, 7], [1, 1, 1, 2, 1], [25, 26, 27, 28, 29], [1, 1, 0, 1, 3]]
>>> def foo(data):
...     print len(data)
...     for i in data:
...             print ' '.join([str(item) for item in i])
... 
>>> foo(data)
5
1 2 23 12 6
3 4 5 6 7
1 1 1 2 1
25 26 27 28 29
1 1 0 1 3
>>>