import numpy as np
import re
list1= ['651ac1', '21581', '13737|14047', '22262', '12281', '12226', '61415', '61495']
regexp = '[a-zA-Z]'
selection = np.array([bool(re.search(regexp, element)) for element in list1])
if True in selection:
#get_element_containing_true
selection
如下所示:
selection
array([ True, False, False, False, False, False, False, False, False], dtype=bool)
我想得到数组中包含True的元素。我怎么得到这个?你知道吗
你真的需要这里的
numpy
(如果不需要,请参阅@Divakar's answer)?如果这样做,可以将list1
转换为np.array
并索引:这被称为^{} 。以防你感兴趣。你知道吗
性能提示:如果您多次使用正则表达式:编译它并重用已编译的表达式:
这可以更快更容易地与另一个答案结合起来。你知道吗
你可以直接在
list-comprehension
-仔细观察,使用搜索方法,我们得到一个匹配的对象:
对于不匹配的情况,我们得到
None
。你知道吗根据^{} :
因此,如果搜索方法的结果直接反馈给
IF
,我们得到匹配的对象,None
没有匹配的对象。因此,使用定义,对于IF
,匹配将被评估为True
,否则将被评估为False
。因此,我们可以跳过那里的bool(),得到一个简化的版本,就像这样-相关问题 更多 >
编程相关推荐