list有多个 重复值, 获取指定重复值的 分别位置
时间: 2023-08-22 10:06:00 浏览: 171
如果列表中有多个重复值,并且你想获取某个指定的重复值在列表中出现的所有位置,你可以使用以下代码:
```python
my_list = ['a', 'b', 'c', 'a', 'd', 'e', 'a']
target_value = 'a'
indices = [i for i, x in enumerate(my_list) if x == target_value]
print(f"The value '{target_value}' appears at the following indices: {indices}")
```
在这个例子中,我们定义了一个包含多个重复值的列表 `my_list`,以及我们想要查找的目标值 `target_value`。然后,我们使用列表推导式 `[i for i, x in enumerate(my_list) if x == target_value]` 来找到所有匹配的位置。这个列表推导式会遍历列表中的每个元素,记录下与目标值匹配的元素的所有索引位置。
最后,我们打印出所有匹配位置的列表。在这个例子中,输出结果为:
```
The value 'a' appears at the following indices: [0, 3, 6]
```
这意味着在 `my_list` 中,值为 `'a'` 的元素出现在索引位置 `0`,`3` 和 `6`。
相关问题
java8获取列表对象元素的两个属性值组成无重复元素的map
首先,我们需要一个列表对象,其中包含多个元素,每个元素都有两个属性值。假设这个列表对象名为list,并且元素属性值分别为属性1和属性2。
我们可以使用Java 8的流式操作来获取列表对象的属性值,并将其转换为无重复元素的map。
首先,我们将列表对象list转换为流,使用stream()方法:
Stream<Element> stream = list.stream();
接下来,我们将每个元素转换为一个包含属性1和属性2值的Entry对象,并将其作为map的key-value对。
Map<Object, Object> map = stream
.map(element -> new AbstractMap.SimpleEntry<>(element.getProperty1(), element.getProperty2()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue));
在上述代码中,我们通过调用stream的map方法将每个元素转换为Entry对象。这里使用了AbstractMap.SimpleEntry类来创建Entry对象,传入element的属性1和属性2值。
在转换完每个元素后,我们使用collect方法将这些Entry对象收集到map中。在收集的过程中,我们指定了合并重复key的规则,这样就能确保生成的map中没有重复的key。
最后,我们得到了一个无重复元素的map,其中key是列表对象元素的属性1值,value是属性2值。
需要注意的是,属性1值和属性2值都需要正确实现equals和hashCode方法,以确保在收集过程中没有重复的key。
c# 获取文字 在字符串的多个位置
你可以使用以下代码来获取在字符串中出现指定文字的所有位置:
```csharp
string text = "hello world, hello universe";
string search = "hello";
List<int> positions = new List<int>();
int index = 0;
while ((index = text.IndexOf(search, index)) != -1)
{
positions.Add(index);
index += search.Length;
}
foreach (int position in positions)
{
Console.WriteLine(position);
}
```
在上面的示例中,我们首先定义了一个字符串 `text` 和要搜索的文字 `search`。然后我们创建了一个 `List<int>` 类型的变量 `positions` 来存储出现位置。
接下来我们使用 `IndexOf` 方法来查找 `search` 在 `text` 中的位置。由于 `IndexOf` 方法会返回第一次出现的位置,因此我们需要在每次找到一个位置后将 `index` 增加 `search.Length`,以避免重复查找。
最后我们遍历 `positions` 变量并输出每个位置。