如何找到满足特定条件的序列中的对象?
列表理解和过滤遍历整个列表。唯一的选择是手工制作的环吗?
mylist = [10, 2, 20, 5, 50]
find(mylist, lambda x:x>10) # Returns 20
这是我使用的模式:
mylist = [10, 2, 20, 5, 50]
found = next(i for i in mylist if predicate(i))
或者,在Python 2.4 / 2.5中,next()
它不是内置的:
found = (i for i in mylist if predicate(i)).next()
请注意,如果未找到任何元素,则会next()
引发StopIteration
。在大多数情况下,这可能很好。您要求输入第一个元素,不存在这样的元素,因此程序可能无法继续。
另一方面,如果您 确实 知道在这种情况下该怎么办,则可以提供默认值next():
conf_files = ['~/.foorc', '/etc/foorc']
conf_file = next((f for f in conf_files if os.path.exists(f)),
'/usr/lib/share/foo.defaults')
问题内容: 我很新,我希望它不太明显,但是我似乎无法为以下问题找到一个简短而准确的答案。 我有两个清单: 我想查找第二个列表()的所有索引何时在第一个列表()中,以便得到如下内容: b在a中的索引:或 问题答案: 具有列表理解: 或使用for循环:
问题内容: 我正在尝试使用正则表达式来匹配字符串中相同字符的一个或多个实例的序列。 范例: 我能给我一些提示吗? 问题答案: 您可以使用和正则表达式: 关键部分在外部捕获组-中。在这里,我们捕获一个字符,然后通过组号引用该字符:。组号为2,因为我们有一个外部捕获组,其号为1,表示0次或多次。 您也可以通过一个捕获组和解决它:
问题内容: 关于你的第一个问题:该代码非常好,并且如果与其中的一个元素相等就可以正常工作。也许你尝试查找与其中一项不完全匹配的字符串,或者你使用的浮点值会导致不准确。 关于第二个问题:如果“查找”列表中的内容,实际上有几种可能的方法。 检查里面是否有东西 这是你描述的用例:检查列表中是否包含某些内容。如你所知,你可以使用in运算符: 过滤集合 即,找到满足特定条件的序列中的所有元素。你可以为此使用
如何在Python中找到列表的中值?列表可以是任何大小,并且不能保证数字按任何特定顺序排列。 如果列表包含偶数个元素,则函数应返回中间两个元素的平均值。 以下是一些示例(出于显示目的进行了分类):
从一个图像预处理工具,我得到一个0和1的序列,其中1表示预处理工具已经找到了我要找的东西。在一个理想的世界中,这看起来是这样的: 00000000000000001111111000000000000000000 我现在需要找到1的“中间”位置,即。 00000000000000000001000000000000000000000 这将相当简单(遍历列表,获得到1的转换和到0的转换,并从这两个位
本文向大家介绍在Python中查找列表中元素的相对顺序,包括了在Python中查找列表中元素的相对顺序的使用技巧和注意事项,需要的朋友参考一下 我们给了一个列表,其元素是整数。我们需要找到相对顺序,这意味着如果它们以升序排序,那么我们需要找到它们位置的索引。 带排序和索引 我们首先对整个列表进行排序,然后在排序之后找出每个列表的索引。 示例 输出结果 运行上面的代码给我们以下结果- 用枚举和排序
问题内容: 如果我有这个: 然后在a中找到b: 有没有办法对列表做类似的事情?像这样: False的结果是可以理解的-因为它正确地寻找了一个元素’de’,而不是(我恰好想要它做的)’d’之后是’e’ 这是可行的,我知道: 我可以处理数据以获得所需的内容-但是有没有一种简短的Pythonic方式可以做到这一点? 需要说明的是:我需要在此处保留顺序(b = [‘e’,’d’],应返回False)。 如
问题内容: 我有一个字符串序列-最多200万。它们不连续。意思是有差距。在0000003之后说下一个字符串可能是0000006。我需要找出所有这些间隙。在上述情况下(0000004、0000005)。 到目前为止,这是我所做的- 但是正如您可能已经猜到的那样,自从我使用以来,这很慢。如果我使用来预填充curr_ids,它将更快。但是填充哈希表的复杂性是什么?最快的方法是什么。 问题答案: 您可以对