【问题标题】:How to remove "\n" in a list of lists (python)如何删除列表列表中的“\ n”(python)
【发布时间】:2016-05-02 19:59:09
【问题描述】:

我有一个巨大的列表列表,我从这样的文件中导入:

letters = []
for i in range(len(string)):
    let = []
    for j in range(7):
        line = infile.readline()
        let = let + [line]
    letters.append(let)
    infile.readline()

这是一个很大的列表,但每个二级列表的末尾都有一个 \n。

[['   ###   \n', '  ## ##  \n', ' ##   ## \n', '##     ##\n', 
'#########\n', '##     ##\n', '##     ##\n'], ['######## \n',
'##     ##\n', '##     ##\n', '######## \n', '##     ##\n',
'##     ##\n', '######## \n'], ... ]]

如何删除\n?所以它只是

[['   ###   ', '  ## ##  ', ' ##   ## ', '##     ##', 
'#########', '##     ##', '##     ##'], ['######## ',
'##     ##', '##     ##', '######## ', '##     ##',
'##     ##', '######## '], ... ]]

在其中留出空间也很重要。我试过做

 letters.strip("\n")

但这没有用。

请帮忙!

编辑:我认为这可能是一个问题

line = infile.readline()

但我不确定如何修复它。

我想要的输出是

    ###    #######  ########

但是我得到了这个

    ###
  #######
 ########

【问题讨论】:

  • 什么意思?
  • 您使用哪种语言?
  • letters = [letter.strip() for letter in letters] 怎么样?你不能一次在整个列表上调用strip(一个string方法)!
  • 对不起,我在 IDLE 中使用 python 3。当我尝试 .strip("\n") 它给了我这个错误。 AttributeError: 'list' 对象没有属性 'strip'
  • 您有一个列表列表。 strip 方法作用于字符串,而不是列表。

标签: python list file newline


【解决方案1】:

无论您当前的代码在哪里调用.readline(),都改为.readline().rstrip('\n')

【讨论】:

    【解决方案2】:

    试试:

    line = infile.readline()
    line = line.strip('\n')
    let = let + [line]
    

    【讨论】:

    • 字符串不会在标准 Python 中就地修改。您的 .strip() 输出未被使用。
    • 是的,jez 说,然后补充他的评论以达到最小长度。
    【解决方案3】:

    如果您只想从最后一个元素中删除\n,请使用:

    t[-1] = t[-1].strip()
    

    如果你想从所有元素中删除\n,使用这个:

    t = map(lambda s: s.strip(), t)
    

    您还可以考虑在拆分行之前删除\n

    line = line.strip()
    

    【讨论】:

    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2011-04-20
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多