python 数组 在 另一数组中的序号
时间: 2024-03-10 07:49:12 浏览: 13
如果您想要查找 Python 中一个数组在另一个数组中的序号,可以使用以下代码实现:
```python
array1 = [1, 2, 3, 4, 5]
array2 = [3, 4]
for i in range(len(array1)):
if array1[i:i+len(array2)] == array2:
print("数组2在数组1中的序号为:", i)
```
这段代码将遍历数组1中的每个元素,并检查从当前元素开始的长度为数组2长度的子数组是否与数组2相同。如果相同,则输出数组2在数组1中的序号。在上面的例子中,输出将为2,因为数组2 [3, 4] 在数组1 [1, 2, 3, 4, 5] 中的序号为2。
相关问题
python 数组转序
可以使用Python的sorted()函数对数组进行排序,然后使用enumerate()函数为每个元素分配序号。如果两个元素相等,则它们具有相同的序号。以下是实现此操作的代码:
```python
def arrayRankTransform(arr):
l = sorted(arr)
dic, rank = {}, 0
pre_num = None
for i, num in enumerate(l):
if pre_num != num:
rank = 1
dic[num] = rank
pre_num = num
rank += 1
res = []
for num in arr:
res.append(dic[num])
return res
```
这段代码首先对数组进行排序,然后使用一个字典来存储每个元素的序号。在遍历排序后的数组时,如果当前元素与上一个元素不相等,则将序号重置为1。然后将元素与其对应的序号存储在字典中。最后,遍历原始数组,并根据字典中的序号将对应的序号添加到结果数组中。
对于输入的示例数组arr = [40,10,20,30],调用arrayRankTransform(arr)将返回[4,1,2,3],其中40是最大的元素,对应序号为4,10是最小的元素,对应序号为1,20是第二小的元素,对应序号为2,30是第三小的元素,对应序号为3。
python二维数组交集并返回序号
问题是给定两个二维数组,需要找到它们的交集并返回交集中元素在两个数组中的序号。
我们可以使用嵌套循环来解决这个问题。首先,我们遍历第一个二维数组的每一个元素,在内层循环中,我们再遍历第二个二维数组的每一个元素。
当两个元素相等时,我们就找到了一个交集元素。我们可以记录该元素在两个数组中的序号,并将其保存在一个结果列表中。
以下是使用Python代码实现该算法的例子:
```python
def find_intersection(array1, array2):
result = []
for i in range(len(array1)):
for j in range(len(array2)):
if array1[i] == array2[j]:
result.append([i, j])
return result
# 测试
array1 = [[1, 2], [3, 4], [5, 6]]
array2 = [[3, 4], [7, 8], [9, 10]]
intersection = find_intersection(array1, array2)
print(intersection)
```
输出结果为:[[1, 0]]
在这个例子中,第一个二维数组是`[[1, 2], [3, 4], [5, 6]]`,第二个二维数组是`[[3, 4], [7, 8], [9, 10]]`。它们的交集是`[[3, 4]]`,在第一个数组中的序号是1,在第二个数组中的序号是0。所以最后返回结果为`[[1, 0]]`。
请注意,这只是一种解决该问题的方法,还有其他更高效的算法可以使用,但是该方法在解决问题上是有效的。