从python lis中删除'\n'列表项

2024-04-24 12:03:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,其中包含一个项目'\n'。 我想把它取下来。但是,remove命令不适用于它。有人能告诉我我做错了什么吗?

def main():
    list1 = ['\ng,g\ng,g,g\n', '\n', '\ns\ns,s\n', '\nd,d\nd\nd,d,d,d\n\n']
    print list1

    print list1.remove('\n')


if __name__ == '__main__':
    main()

另外,如果我的列表包含许多这样的条目'\n',如何将它们全部删除?我目前使用set()来获取副本,然后尝试使用remove命令。但是,set()命令似乎改变了列表的排序。我宁愿遍历列表,如果找到'\n',请将其删除。


Tags: 项目name命令列表ifmaindef条目
3条回答

这将删除所有这些:

list1=filter(lambda x: x != '\n', list1)

从列表中删除内容是列表理解的众多用途之一:

no_n = [x for x in list1 if x != '\n']
# to change the original list
list1[:] = no_n

remove方法就地修改列表并返回None。因此,当您使用print list1.remove('\n')时,会修改列表,但会打印None。改为分两步进行:

list1.remove('\n')
print list1

要删除所有引用,最自然的做法是在排除换行符的同时构造一个新列表。例如:

list2 = [a for a in list1 if a != '\n']

如果由于某种原因必须安装,则重复使用list1.remove,直到引发异常:

while True:
    try:
        list1.remove('\n')
    except ValueError:
        break

相关问题 更多 >