Python ValueError:list。删除(x):x不在列表中

Python ValueError:list。删除(x):x不在列表中,python,Python,我的代码中有什么错误,但我可以得到预期的结果 我正在尝试删除列表中的所有“#” 基金是数据列表: In [3]: funds_U Out[3]: [u'#', u'#', u'MMFU_U', u'#', u'#', u'AAI_U', u'TGI_U', u'JAS_U', u'TAG_U', u'#', u'#', u'AAT_U', u'BGR_U', u'BNE_U', u'IGE_U', u'#', u'#', u'DGF_U', u'BHC_U'

我的代码中有什么错误,但我可以得到预期的结果

我正在尝试删除列表中的所有“#”

基金是数据列表:

In [3]: funds_U
Out[3]: 
[u'#',
 u'#',
 u'MMFU_U',
 u'#',
 u'#',
 u'AAI_U',
 u'TGI_U',
 u'JAS_U',
 u'TAG_U',
 u'#',
 u'#',
 u'AAT_U',
 u'BGR_U',
 u'BNE_U',
 u'IGE_U',
 u'#',
 u'#',
 u'DGF_U',
 u'BHC_U',
 u'FCF_U',
 u'SHK_U',
 u'VCF_U',
 u'#',
 u'JEM_U',
 u'SBR_U',
 u'TEM_U',
 u'#',
 u'#',
 u'BAB_U',
 u'BGA_U',
 u'#']
代码如下:

In [4]: for fund_U in funds_U[:]:
   ...:     funds_U.remove(u"#")
   ...:     
错误如下:

ValueError                                Traceback (most recent call last)
<ipython-input-4-9aaa02e32e76> in <module>()
      1 for fund_U in funds_U[:]:
----> 2     funds_U.remove(u"#")
      3 

ValueError: list.remove(x): x not in list
ValueError回溯(最近一次调用)
在()
1对于基金中的基金_[:]:
---->2.基金移除(U“#”)
3.
ValueError:list。删除(x):x不在列表中
我会这样做:

new = [item for item in funds_U if item!=u'#']

这是一个很好的例子。它将遍历funds_中的每个项目,并将其添加到新列表中,如果它不是
U'#'

,这将修改原始对象,因此如果有其他变量指向同一对象,则它们的链接将保持不变

FUNDS_U[:] = [x for x in FUNDS_U if x != "#"]
根据,如果列表中不存在该项,
remove()
将抛出错误。现在,您的代码将遍历列表中的每一项,并尝试删除大量的
s。由于不是每个项目都是
remove()
将在列表用尽
时抛出错误

试着这样做:

funds_U = [x for x in funds_U if x != u'#']

这将创建一个新列表,其中包含
funds#U
中不是
U'#'

的每个元素,在尝试使用该语言之前至少要学习该语言的基本知识。
而在funds#U:funds#U中的U'#U。删除(U'#')
是一种方法。。。但是你真的应该使用列表