如何获取列表相同元素最后一个下标
时间: 2024-05-05 13:16:49 浏览: 12
可以使用Python内置函数`enumerate()`和`dict()`来实现。
具体做法如下:
1. 遍历列表,并将元素作为键,下标作为值,添加到一个空字典中。
2. 如果该元素已经在字典中,更新该元素对应的值为当前下标。
3. 最后遍历字典,找到值最大的键即为列表中相同元素的最后一个下标。
代码实现如下:
```python
def last_index(lst):
d = {}
for i, x in enumerate(lst):
d[x] = i
return max(d.values())
# 测试
lst = [1, 2, 3, 4, 3, 5, 2]
print(last_index(lst)) # 输出:4
```
解释:
- 第一次遍历时,字典`d`中添加了以下键值对:
```
{1: 0, 2: 1, 3: 2, 4: 3, 5: 5}
```
- 第二次遍历时,发现元素`3`已经在字典中,更新其值为当前下标2。
- 最后遍历字典,发现值最大的键为`3`,对应的下标为4,即为列表中相同元素的最后一个下标。
相关问题
uniapp获取某类的最后一个元素
可以通过以下代码获取某个数组的最后一个元素:
```javascript
let arr = [1, 2, 3, 4];
let lastObj = arr[arr.length - 1];
console.log(lastObj); // 4
```
如果想要获取某个对象数组的最后一个元素,可以使用相同的方法:
```javascript
let objArr = [{name: '张三'}, {name: '李四'}, {name: '王五'}];
let lastObj = objArr[objArr.length - 1];
console.log(lastObj); // {name: '王五'}
```
如果要获取的是某个由组件构成的数组的最后一个元素,可以直接使用该数组的 `length` 属性和数组下标来获取:
```javascript
let compArr = this.$refs.compList;
let lastComp = compArr[compArr.length - 1];
console.log(lastComp); // 该数组的最后一个组件
```
注意:上述方法仅适用于数组元素的索引值是连续的情况。如果该数组元素的索引值不是连续的,可以使用 `for...of` 循环或 `Array.prototype.find()` 方法来查找最后一个元素。
js查找数组中相同元素的下标
可以使用 JavaScript 的 indexOf 和 lastIndexOf 方法来查找数组中相同元素的下标。具体方法如下:
1. 首先遍历数组中的每个元素,利用 indexOf 方法查找该元素在数组中第一次出现的位置。
2. 如果该元素在数组中出现了多次,那么利用 lastIndexOf 方法查找该元素在数组中最后一次出现的位置。
3. 将找到的位置存入一个新的数组中,最后返回该数组即可。
下面是一个示例代码:
```javascript
function findSameIndex(arr) {
var indexArr = [];
for (var i = 0; i < arr.length; i++) {
var firstIndex = arr.indexOf(arr[i]); // 查找第一次出现的位置
var lastIndex = arr.lastIndexOf(arr[i]); // 查找最后一次出现的位置
if (firstIndex !== lastIndex && indexArr.indexOf(firstIndex) === -1) { // 判断是否是重复元素并且未添加到结果数组中
indexArr.push(firstIndex);
}
}
return indexArr;
}
// 示例
var arr = [1, 2, 3, 4, 5, 2, 6, 7, 3];
console.log(findSameIndex(arr)); // [1, 6, 8]
```
上述代码中,findSameIndex 函数接收一个数组参数 arr,返回一个包含相同元素下标的数组 indexArr。该函数首先利用 indexOf 方法查找数组中每个元素第一次出现的位置,然后利用 lastIndexOf 方法查找该元素最后一次出现的位置。最后判断该元素是否是重复元素并且未添加到结果数组中,如果是则将第一次出现的位置添加到结果数组中。