python 数组查找
时间: 2023-10-12 21:11:32 浏览: 116
Python 二维数组中的查找
5星 · 资源好评率100%
在 Python 中,可以使用列表(List)来表示数组,常用的查找方式有以下几种:
1. 线性查找
线性查找是最简单的一种查找方式,即遍历整个数组,逐个比较元素,直到找到目标元素或者遍历完整个数组。
示例代码:
```python
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1 # 如果没有找到,返回 -1
arr = [1, 3, 5, 7, 9]
target = 5
index = linear_search(arr, target)
print(index) # 输出 2
```
2. 二分查找
二分查找也叫折半查找,是一种效率较高的查找方式,但要求数组必须有序。
示例代码:
```python
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1 # 如果没有找到,返回 -1
arr = [1, 3, 5, 7, 9]
target = 5
index = binary_search(arr, target)
print(index) # 输出 2
```
3. 使用 in 关键字进行查找
在 Python 中,可以使用 in 关键字来判断一个元素是否在一个列表中。
示例代码:
```python
arr = [1, 3, 5, 7, 9]
target = 5
if target in arr:
index = arr.index(target)
print(index) # 输出 2
else:
print(-1)
```
4. 使用 index 方法进行查找
Python 的列表对象提供了 index 方法用于查找元素在列表中的位置,如果没找到会抛出 ValueError 异常。
示例代码:
```python
arr = [1, 3, 5, 7, 9]
target = 5
try:
index = arr.index(target)
print(index) # 输出 2
except ValueError:
print(-1)
```
阅读全文