Python给定一个字符串统计字符串中每个字符在该字符中出现位置的所有索引
时间: 2024-09-25 22:20:42 浏览: 77
在Python中,你可以使用列表推导式或者字典结合enumerate函数来统计字符串中每个字符及其出现的位置。这里是一个简单的例子:
```python
def char_positions(string):
# 使用字典存储每个字符及其对应的索引列表
char_dict = {char: [i for i, ch in enumerate(string) if ch == char] for char in set(string)}
return char_dict
# 示例
input_string = "hello world"
result = char_positions(input_string)
print(result)
```
在这个`char_positions`函数中,我们首先创建一个空字典`char_dict`,然后遍历输入字符串的每一个字符(忽略重复),通过`enumerate`获取字符的索引。如果字符已经存在于字典中,我们就将其添加到相应的索引列表中;如果不存在,则添加一个新的键值对,键是字符,值是一个只包含该字符索引的列表。
运行上述代码,将得到一个字典,其中键是字符串中的每个独特字符,值是该字符在字符串中所有出现的索引位置组成的列表。
相关问题
给定一个字符串,统计字符串中每个字符在该字符串中出现位置的所有索引。python
在Python中,你可以使用内置的`enumerate()`函数以及字典数据结构来统计字符串中每个字符及其出现的位置。这里是一个简单的示例:
```python
def char_positions(s):
position_dict = {}
for index, char in enumerate(s):
if char in position_dict:
position_dict[char].append(index)
else:
position_dict[char] = [index]
return position_dict
# 示例
s = "hello world"
result = char_positions(s)
print(result) # 输出:{'h': [0], 'e': [1], 'l': [2, 3], 'o': [4, 7], ' ': [5], 'w': [6], 'r': [8], 'd': [9]}
```
这个函数遍历输入字符串`s`,对于每个字符,如果它已经在`position_dict`中,就将当前索引添加到对应的列表中;如果没有,就创建一个新的键值对,键是字符,值是一个只包含当前位置的列表。
给定一个字符串统计字符串中每个字符在该字符串中出现的位置的所有索引。
当你需要统计一个字符串中每个字符第一次和最后一次出现的索引时,可以遍历整个字符串,同时维护一个字典或者哈希表来记录每个字符及其对应的索引。以下是Python的一个简单示例:
```python
def char_positions(s):
positions = {}
for i, c in enumerate(s):
if c not in positions:
positions[c] = [i]
else:
positions[c].append(i)
return positions
s = "hello world"
char_positions_dict = char_positions(s)
print(char_positions_dict) # 输出:{'h': [0], 'e': [1], 'l': [2, 3, 9], 'o': [4, 7], ' ': [5], 'w': [6], 'r': [8], 'd': [10]}
```
在这个例子中,`positions` 字典的键是字符,值是一个列表,包含该字符首次和后续所有出现的索引。例如,字符'l'出现三次,所以它的位置列表有 `[2, 3, 9]`。
阅读全文