Compute the Indices of the Target Element in Array/List using Py
- 时间:2020-09-13 14:33:25
- 分类:网络文摘
- 阅读:151 次
Given an array (or list), and a target element, find all the indices that the element appears in it. For example,
Array: [1, 2, 3, 4, 5, 5, 6, 7, 8], and find the element 5, which appears in index 4 and 5, thus return [4, 5].
This is a trivial question and most programmers know how to do this using a for loop. For example,
In Python:
1 2 3 4 5 6 | def getIndices(data, element): x = [] for i in range(len(data)): if data[i] == element: x.append(i) return x |
def getIndices(data, element):
x = []
for i in range(len(data)):
if data[i] == element:
x.append(i)
return xOr similarly in Javascript:
1 2 3 4 5 6 7 8 9 | function getIndices(data, element) { let x = []; for (let i = 0; i < data.length; i += 1) { if (data[i] === element) { x.push(i); } } return x; } |
function getIndices(data, element) {
let x = [];
for (let i = 0; i < data.length; i += 1) {
if (data[i] === element) {
x.push(i);
}
}
return x;
}However, as a spirit of avoiding loops as much as you can, we can simplify the implementation. In Python, we can use the enumerate and the list comprehension which gives us the following short and concise solution to return the list of the indices for a target element in the array.
1 2 | def getIndices(data, element): return [x for x, y in enumerate(data) if y == element] |
def getIndices(data, element):
return [x for x, y in enumerate(data) if y == element]In Javascript, we could similarly implement a enumerate function, alternatively, we can chain map and filter function.
1 2 3 4 5 6 7 8 | function getIndices(data, element) { let i = -1; return data.map(x => { i ++; // incrementing the index // return index for target element return x == element ? i : false; }).filter(x => typeof x !== 'boolean'); } |
function getIndices(data, element) {
let i = -1;
return data.map(x => {
i ++; // incrementing the index
// return index for target element
return x == element ? i : false;
}).filter(x => typeof x !== 'boolean');
}The map function maps those target elements with their indices, and others similar set to false – which will be filtered out via filter.
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:常吃些鲜枣可抑制癌细胞提高免疫力 保健与养生:大枣的食疗功效和作用 红枣食疗三推荐:健脾安神降压降脂 男性养生:男人吃葡萄干有特别好处 食品营养之葡萄干具有的营养价值 女性养生:女人吃葡萄干有哪些好处? 对转基因食品必须采取最严格保护措施 《食品安全法》修订四大焦点引发关注 秋冬季节风寒感冒 葱白有治疗感冒功效 秋冬时节抗病毒防感冒的食疗养生方
- 评论列表
-
- 添加评论