Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Python-如果有一个";确切的;火柴_Python_String_Find_Any - Fatal编程技术网

Python-如果有一个";确切的;火柴

Python-如果有一个";确切的;火柴,python,string,find,any,Python,String,Find,Any,我希望结果是: 'a' 'aa' 使用any()获得正确结果的正确方法是什么?根据我对您问题的解释,您似乎想找到键中的哪个项目在lst中。这将是实现这一目标的方法: 'a' 根据我对您问题的解释,您似乎想找到键中的哪个项目在lst中。这将是实现这一目标的方法: 'a' 你不需要做所有的索引 def findexact(lst): key = ['a','g','t'] for k in key: if k in lst: print

我希望结果是:

'a'
'aa'

使用
any()
获得正确结果的正确方法是什么?

根据我对您问题的解释,您似乎想找到
键中的哪个项目
lst
中。这将是实现这一目标的方法:

'a'

根据我对您问题的解释,您似乎想找到
中的哪个项目在
lst
中。这将是实现这一目标的方法:

'a'

你不需要做所有的索引

def findexact(lst):
    key = ['a','g','t']
    for k in key:
        if k in lst:
            print k
            return k

你不需要做所有的索引

def findexact(lst):
    key = ['a','g','t']
    for k in key:
        if k in lst:
            print k
            return k
这应该做你想做的


这应该可以完成您正在尝试的工作。最简单的方法是使用Python的内置集合交集:

lst = ['a', 'b', 'c', 'aa', 'bb', 'cc']
def findexact(lst):
    i=0
    key = ['a','g','t']
    for eachItm in lst:
        if eachItm in key:
            print eachItm

findexact(lst)
输出

lst = ['a', 'b', 'c', 'aa', 'bb', 'cc']
key = ['a','g','t']

for item in set(lst).intersection(key):
    print item
如果至少存在一个精确匹配,则返回
True
的函数:

def findexact(lst):
    key = ['a','g','t']
    return set(lst).intersect(key)

最简单的方法是使用Python的内置集合交集:

lst = ['a', 'b', 'c', 'aa', 'bb', 'cc']
def findexact(lst):
    i=0
    key = ['a','g','t']
    for eachItm in lst:
        if eachItm in key:
            print eachItm

findexact(lst)
输出

lst = ['a', 'b', 'c', 'aa', 'bb', 'cc']
key = ['a','g','t']

for item in set(lst).intersection(key):
    print item
如果至少存在一个精确匹配,则返回
True
的函数:

def findexact(lst):
    key = ['a','g','t']
    return set(lst).intersect(key)
这:

在列表中每个元素的内部查找键的每个元素。并在“a”和“aa”中查找“a”。在lst的任何元素中都找不到“g”或“t”。

这是:


在列表中每个元素的内部查找键的每个元素。并在“a”和“aa”中查找“a”。它在lst的任何元素中都找不到“g”或“t”。

为了匹配您的预期输出,您不能使用
集合。由于集合是无序的,所以如果您将
a
作为第一个项目,这完全是偶然的,您应该制作
集合并在
中使用
,在返回第一个匹配项的列表上迭代,这将保持顺序:

item in lst[i] for item in key
如果要获取所有匹配项并查看非匹配项,只需将密钥设置为一个集合并使用循环:

def findexact(lst):
    key = {'a','g','t'}
    for ele in lst:
        if ele in key:
            return ele
    return False
如果要根据是否存在任何公共元素返回布尔值,请使用
set.isdisjoint

def findexact(lst):
    key = {'a','g','t'}
    for ele in lst:
        if ele in key:
            print(ele)
        else:
            # do whatever
如果至少有一个匹配项,函数将返回True,如果没有,则集合不相交,因此将返回False

如果需要索引,请使用枚举:

def findexact(lst):
    key = {'a','g','t'}
    return not key.isdisjoint(lst)

如果我们有一个匹配项,那么它将返回元素和索引,如果您只是想让索引返回
ind
,对于不匹配项,我们只返回False

,以匹配您的预期输出,您不能使用
set。因为集合是无序的,所以如果您将
a
作为第一项,这完全是偶然的,您应该设置
并在
中使用
,在返回第一个匹配项的列表上迭代,以保持顺序:

item in lst[i] for item in key
如果要获取所有匹配项并查看非匹配项,只需将密钥设置为一个集合并使用循环:

def findexact(lst):
    key = {'a','g','t'}
    for ele in lst:
        if ele in key:
            return ele
    return False
如果要根据是否存在任何公共元素返回布尔值,请使用
set.isdisjoint

def findexact(lst):
    key = {'a','g','t'}
    for ele in lst:
        if ele in key:
            print(ele)
        else:
            # do whatever
如果至少有一个匹配项,函数将返回True,如果没有,则集合不相交,因此将返回False

如果需要索引,请使用枚举:

def findexact(lst):
    key = {'a','g','t'}
    return not key.isdisjoint(lst)


如果我们有匹配项,那么它将同时返回元素和索引,如果您只想让索引返回
ind
,对于不匹配项,我们只返回False

您想做什么?打印
'a'
和“返回True”不是一回事。你想要哪一个?哦。很抱歉我正在写这篇文章,然后我把代码改为打印“a”。我忘了更改标题。你想做什么?打印
'a'
和“返回True”不是一回事。你想要哪一个?哦。很抱歉我正在写这篇文章,然后我把代码改为打印“a”。我忘了换书名了,比我快;我想说的是,除非函数的目的是打印,或者您正在调试,否则您不应该在函数中
打印
。有没有一种方法可以在if语句中使用“for item in(set(key)&set(lst))?如果有匹配项,请做一些事情。当然-保存它,然后检查它
myset=(set(key)&set(lst))
如果myset:…
。你不必调用set两次,
set(key).交叉点(lst)
,你为什么循环然后返回?啊,好的。这太完美了。谢谢打败我吧;我想说的是,除非函数的目的是打印,或者您正在调试,否则您不应该在函数中
打印
。有没有一种方法可以在if语句中使用“for item in(set(key)&set(lst))?如果有匹配项,请做一些事情。当然-保存它,然后检查它
myset=(set(key)&set(lst))
如果myset:…
。你不必调用set两次,
set(key).交叉点(lst)
,你为什么循环然后返回?啊,好的。这太完美了。谢谢有没有办法将set().intersect()与if语句一起使用?例如,如果存在匹配项,则执行某项操作?是的,只需执行:
如果设置(lst).intersect(key):打印“精确匹配!”是否有方法将set().intersect()与if语句一起使用?例如,如果存在匹配项,则执行某项操作?是的,只需执行:
如果设置(lst).intersect(key):打印“精确匹配!”有没有办法获得精确匹配的索引?如果在“lst”@niamleeson中只有一个匹配项,enumerate将为您提供索引,您是否有办法获得精确匹配的索引?如果“lst”@niamleeson中只有一个匹配项,enumerate将为您提供索引