用python找到列表所有符合条件的元素的索引号
时间: 2024-05-15 10:16:04 浏览: 63
可以使用列表推导式和enumerate函数来找到列表中所有符合条件的元素的索引号。
例如,我们要找到列表中所有大于等于5的元素的索引号:
```
my_list = [3, 7, 4, 8, 2, 9, 5, 1]
indices = [i for i, x in enumerate(my_list) if x >= 5]
print(indices)
```
输出结果为:
```
[1, 3, 5, 6]
```
解释:
- enumerate函数将列表中的每个元素和对应的索引号组成一个元组,例如(0, 3), (1, 7),以此类推。
- 列表推导式中的if语句用于筛选符合条件的元素,例如x >= 5。
- 最终返回的是所有符合条件的元素的索引号,即[i for i, x in enumerate(my_list) if x >= 5]。
相关问题
python找到列表中找到所有符合条件的元素的索引号
可以使用enumerate()函数来获取每个元素的索引号,然后在循环中判断元素是否符合条件,如果符合条件则将索引号添加到一个新的列表中。以下是一个示例代码:
```
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
condition = lambda x: x % 2 == 0 # 找出所有偶数的索引号
result = [index for index, item in enumerate(lst) if condition(item)]
print(result) # 输出 [1, 3, 5, 7]
```
在示例代码中,使用lambda表达式定义了一个条件函数,该函数用来判断一个数是否为偶数。然后使用列表推导式来循环遍历列表中的每个元素,如果符合条件则将其索引号添加到结果列表中。最后输出结果列表。
python使用filter查找列表中最大元素的索引
以下是使用filter函数查找列表中最大元素的索引的Python代码:
```
lst = [3, 8, 2, 9, 5, 1]
max_index = max(filter(lambda i: lst[i] == max(lst), range(len(lst))))
print(max_index)
```
输出:
```
3
```
解释:
- `filter`函数用于过滤出符合条件的元素,它接收一个函数和一个可迭代对象作为参数,返回一个迭代器对象。
- `lambda`函数用于定义一个匿名函数,这里的`lambda i: lst[i] == max(lst)`表示对于列表中的每个索引`i`,如果它所对应的元素等于列表中的最大元素,则返回`True`,否则返回`False`。
- `range(len(lst))`生成一个包含列表长度范围内所有整数的可迭代对象,即`[0, 1, 2, 3, 4, 5]`。
- `max`函数用于找出可迭代对象中的最大值。
- 因此,上述代码中的`max(filter(lambda i: lst[i] == max(lst), range(len(lst))))`表示筛选出所有等于最大元素的索引,然后取其中最大的索引作为结果。
阅读全文