我有一个列表,其中包含一个项目'\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()
Run Code Online (Sandbox Code Playgroud)
此外,如果我的列表包含许多此类条目'\n',我该如何删除它们?我目前使用set()来获取重复项,然后我试图让remove命令工作.但是,set()命令似乎改变了列表的排序.我宁愿遍历列表并找到'\n',找到它,删除它.
该remove方法就地修改列表并返回None.因此,在使用时print list1.remove('\n'),列表会被修改,但会None被打印.分两步完成:
list1.remove('\n')
print list1
Run Code Online (Sandbox Code Playgroud)
要删除所有匹配项,最自然的是在排除换行符的同时构造新列表.例如:
list2 = [a for a in list1 if a != '\n']
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因它必须就地,则重复使用list1.remove直到引发异常:
while True:
try:
list1.remove('\n')
except ValueError:
break
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12302 次 |
| 最近记录: |