python用户输入一个字符串,统计字符串中每个字符出现的次数,不使用字典和set()
时间: 2023-05-13 19:04:51 浏览: 155
可以使用列表来实现,首先定义一个空列表,然后遍历字符串中的每个字符,如果该字符还没有在列表中出现过,则在列表中添加该字符和出现次数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给定一个字符串统计字符串中每个字符在该字符中出现位置的所有索引
在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接收两个字符串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。
阅读全文