python输出数组内指定元素的所有索引
时间: 2024-02-17 11:30:55 浏览: 191
可以使用enumerate()函数来实现,代码如下:
```python
arr = [1, 2, 3, 2, 4, 5, 2]
target = 2
indices = [i for i, x in enumerate(arr) if x == target]
print(indices)
```
输出:
```
[1, 3, 6]
```
解释:
- `enumerate(arr)`将数组`arr`转换为带索引的可迭代对象;
- `if x == target`判断元素是否等于目标值;
- `[i for i, x in enumerate(arr) if x == target]`使用列表推导式来生成满足条件的索引列表。
相关问题
使用python库numpy输出数组内小于指定数值的所有元素及索引
可以使用以下代码来输出数组内小于指定数值的所有元素及索引:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
val = 4
indices = np.where(arr < val)[0]
values = arr[indices]
print('Indices:', indices)
print('Values:', values)
```
这里使用了`np.where()`函数来找出符合条件的元素索引,然后通过索引获取对应的元素值。最后将索引和元素值打印出来。
使用python中numpy输出列表内指定元素的索引值
可以使用numpy的argwhere函数来输出列表内指定元素的索引值,示例如下:
```
import numpy as np
# 定义列表
lst = [1, 2, 3, 4, 5, 3, 6, 7, 3]
# 输出元素值为3的索引值
idx = np.argwhere(np.array(lst) == 3).flatten()
print(idx)
```
输出结果为:
```
[2 5 8]
```
其中,np.array(lst)将列表转换为numpy数组,然后使用==运算符找到元素值为3的位置,再使用argwhere函数输出这些位置的索引值。flatten函数将结果展开成一维数组。
阅读全文