【问题标题】:changing a string and list of list into a string [closed]将字符串和列表列表更改为字符串[关闭]
【发布时间】:2015-10-28 19:33:31
【问题描述】:

这是我在名为“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 是列数和行数)。
我尝试过 split('[]') 和 " ".join(),但它们都不起作用。我需要什么代码来改变这个?

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

【问题讨论】:

  • 请发布您的代码和输出。
  • 这是在文件中吗?还是多行字符串(""")
  • 是列表还是字符串?
  • 这个问题目前无法回答,因为它完全取决于“这就是我所拥有的”部分首先是如何存储的,而您完全忽略了这一点。
  • 它被写入一个名为“output.txt”的已创建输出文件中。

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


【解决方案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
>>> 

这会使用一些joins、replaces 和splits 解析数据。


如果它在列表中:

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

【讨论】:

  • 如果它在文本文件中怎么办?这就是我上一条评论的意思,以及为什么这个问题过于宽泛:你不应该有一个 4 或 5 部分的答案来涵盖你对 OP 含义的所有猜测。
  • @Two-BitAlchemist 足够公平
  • 它在一个文件中,我已经怀疑了。我认为这是作业,因此开头的“5”向您显示列表的长度(因此您不必计算它,即使这很容易)。我已提名重新打开该问题,但与此同时,我认为如果您将第 3 部分:“如果它在文件中”添加到您的答案中,则值得接受。
猜你喜欢
  • 2015-10-24
  • 2021-02-17
  • 2012-05-24
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
相关资源
最近更新 更多