Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拆下一个'\n';python列表中的列表项_Python_List - Fatal编程技术网

拆下一个'\n';python列表中的列表项

拆下一个'\n';python列表中的列表项,python,list,Python,List,我有一个列表,其中包含一项“\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”。 我想把它去掉。但是,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”,请将其删除。

它在这里起作用:

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
    list1.remove('\n')
    print list1


if __name__ == '__main__':
    main()

请在此处尝试:

这将删除所有内容:

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。删除
,直到引发异常:

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

只是补充一句;当我尝试搜索所有为“\n”的元素时,我的代码再次无法工作<代码>列表1=['\ng,g\ng,g,g\n','\n','\ns\ns,s\n','\nd,d\nd\nd,d,d\n\n']打印列表1中xx的列表1:如果xx='\n':打印xx
谢谢。真不敢相信我在这么一个小错误上浪费了这么多时间。我认为这是因为“\n”是一个空格,现在正在阅读正则表达式教程-_-您的解决方案将删除每个\n,但OP似乎只要求删除仅为“\n”的列表元素。
while True:
    try:
        list1.remove('\n')
    except ValueError:
        break