Ada*_*NYC 2 python if-statement numpy ipython
我想检查列表phrases
中的任何字符串元素是否包含集合中的某些关键字phd_words
.我想使用,any
但它不起作用.
In[19]:
import pandas as pd
import psycopg2 as pg
def test():
phd_words = set(['doctor', 'phd'])
phrases = ['master of science','mechanical engineering']
for word in phrases:
if any(keyword in word for keyword in phd_words):
return 'bingo!'
test()
Out[20]:
bingo!
Run Code Online (Sandbox Code Playgroud)
我该怎么解决这个问题?
Lev*_*sky 12
如果你使用IPython的%pylab
魔法,可能会发生这种情况:
In [1]: %pylab
Using matplotlib backend: Qt4Agg
Populating the interactive namespace from numpy and matplotlib
In [2]: if any('b' in w for w in ['a', 'c']):
...: print('What?')
...:
What?
Run Code Online (Sandbox Code Playgroud)
原因如下:
In [3]: any('b' in w for w in ['a', 'c'])
Out[3]: <generator object <genexpr> at 0x7f6756d1a948>
In [4]: any
Out[4]: <function numpy.core.fromnumeric.any>
Run Code Online (Sandbox Code Playgroud)
any
并all
得到numpy
函数的阴影,这些行为与内置函数不同.这就是我停止使用%pylab
并开始使用的原因,%pylab --no-import-all
因此它不会像这样破坏命名空间.
要在已经阴影的情况下到达内置函数,您可以尝试__builtin__.any
.这个名称__builtin__
似乎可以在Python 2和Python 3上的IPython中使用,它本身可能由IPython启用.在脚本中,您首先必须import __builtin__
使用Python 2和import builtins
Python 3.
归档时间: |
|
查看次数: |
2081 次 |
最近记录: |