python用户输入一个字符串,统计字符串中每个字符出现的次数,不使用字典和set()
时间: 2023-05-13 14:04:51 浏览: 118
可以使用列表来实现,首先定义一个空列表,然后遍历字符串中的每个字符,如果该字符还没有在列表中出现过,则在列表中添加该字符和出现次数1,否则在列表中找到该字符对应的元素,将其出现次数加1。最后遍历列表,输出每个字符和出现次数即可。以下是示例代码:
```python
s = input("请输入一个字符串:")
count_list = []
for c in s:
found = False
for item in count_list:
if item[0] == c:
item[1] += 1
found = True
break
if not found:
count_list.append([c, 1])
for item in count_list:
print(item[0], "出现了", item[1], "次")
```
注意,这种方法的时间复杂度为O(n^2),不适用于处理大量数据。如果需要处理大量数据,应该使用字典或set()来实现。
相关问题
用python编写程序统计1行字符串中: 不同字符的个数。 每种字符出现的次数。
可以使用字典来实现统计不同字符的个数和每种字符出现的次数。具体实现如下:
```python
s = input("请输入字符串:")
# 统计不同字符的个数
count = len(set(s))
print("不同字符的个数为:", count)
# 统计每种字符出现的次数
char_dict = {}
for c in s:
if c in char_dict:
char_dict[c] += 1
else:
char_dict[c] = 1
for k, v in char_dict.items():
print("字符 '{}' 出现了 {} 次".format(k, v))
```
其中,`set(s)` 可以得到字符串中所有不同的字符,`len(set(s))` 即可得到不同字符的个数。使用字典 `char_dict` 统计每种字符出现的次数,遍历字符串中的每个字符,如果字符已经在字典中,就将对应的值加 1,否则将该字符作为键添加到字典中,值为 1。最后遍历字典,输出每个键值对即可。
python接收两个字符串s1和s2,要求返回字符串s2中每个唯一字符(相同字符按一个对待)在s1中出现的次数之和
可以使用 Python 中的字典来统计每个字符在 s1 中出现的次数,然后遍历 s2 中的每个字符,如果这个字符在字典中出现过,则将其出现次数加到总和中。
代码如下:
```python
def count_chars(s1, s2):
# 统计 s1 中每个字符出现的次数
count = {}
for c in s1:
count[c] = count.get(c, 0) + 1
# 遍历 s2 中的每个字符,统计出现次数之和
total = 0
for c in set(s2):
if c in count:
total += count[c]
return total
```
这个函数先创建一个空字典 `count`,然后遍历字符串 s1 中的每个字符,用字典记录每个字符出现的次数。这里使用了字典的 `get` 方法来获取一个键对应的值,如果这个键不存在,则返回默认值 0。
然后,对于 s2 中的每个字符,我们检查它是否在字典中出现过。如果出现过,则将它在 s1 中出现的次数加到总和中。注意,这里使用了 `set(s2)` 来去除重复字符,因为题目要求相同字符只算一次。
可以使用以下代码测试这个函数:
```python
s1 = "hello world"
s2 = "world"
print(count_chars(s1, s2)) # 输出 7
```
这个测试用例中,s1 中出现了 2 个 "o"、1 个 "w"、1 个 "r"、1 个 "l"、1 个 "d",总共出现了 6 个不同的字符,所以 s2 中的每个字符都在 s1 中出现过,总次数为 2+1+1+1+1=6。