python输入字符串"你好.abcdefgh 1,2,3,4,5./;'[]",统计字符串中出现的中英文字母、数字、空格和其他字符出现的次数。
时间: 2024-09-11 19:10:06 浏览: 61
在Python中,你可以使用内置的`collections.Counter`类来统计字符串中各种字符类型的出现次数。这个类可以方便地计算元素及其出现的频率。以下是实现的一个示例:
```python
from collections import Counter
input_string = "你好.abcdefgh 1,2,3,4,5./;'[]"
# 使用正则表达式划分字符串,区分英文字符、数字、汉字、其他字符
char_types = {'英文字母': [], '数字': [], '汉字': [], '其他字符': []}
for char in input_string:
if char.isalpha(): # 英文字符或汉字
char_types['英文字母'].append(char)
elif char.isdigit(): # 数字
char_types['数字'].append(char)
elif '\u4e00' <= char <= '\u9fa5': # 汉字
char_types['汉字'].append(char)
else: # 其他字符(包括空格、标点符号等)
char_types['其他字符'].append(char)
# 计算各类字符的数量
counts = {k: len(v) for k, v in char_types.items()}
print(counts)
```
运行此代码后,会打印出每个类别字符的数量。
相关问题
python获取字符串中指定字符A到指定字符B之间的信息
在Python中,如果你想要获取字符串中从某个字符'A'到另一个字符'B'之间的部分,可以使用切片操作。这里有一个例子:
```python
s = "This is a test string ABCDEFGH"
start_char = 'A'
end_char = 'D'
substring = s[s.index(start_char) + 1 : s.index(end_char)]
print(substring)
```
上述代码首先找到字符'A'的位置,然后从这个位置的下一个字符开始,直到找到字符'B'的前一个位置为止,得到的就是'A'到'B'之间的子串。
注意,如果目标字符不在字符串中,`index()`方法会抛出异常。为了防止这种情况,你也可以使用`try-except`结构捕获异常:
```python
start_char = 'A'
end_char = 'Z'
substring = ""
try:
start_index = s.index(start_char)
end_index = s.index(end_char)
substring = s[start_index+1:end_index]
except ValueError:
print(f"'{start_char}' or '{end_char}' not found in the string")
print(substring)
```
用函数实现:如字符串ABCDeFGH,将不重复的字符串中
的大写字母和小写字母分别存储到两个列表中。
```python
def separate_upper_lower(string):
upper_list = []
lower_list = []
for char in string:
if char.isupper() and char not in upper_list:
upper_list.append(char)
elif char.islower() and char not in lower_list:
lower_list.append(char)
return upper_list, lower_list
string = "ABCDeFGH"
upper_list, lower_list = separate_upper_lower(string)
print(upper_list)
print(lower_list)
```
输出:
```
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
['e']
```
阅读全文