Python字典及统计每个字符出现次数案例

# 编写一个程序,统计一个中文字符串中每个字符出现的次数,并打印出统计结果

#这是一个字符串
str = "我爱编程"
#这是一个空的自带
count = {}
#for循环
for char in str:
    if char in count: #字典count的添加
        count[char] += 1
    else:
        count[char] = 1
for char, count in count.items():
    print(f"字符 '{char}' 出现了 {count} 次")#格式化字符串输出

此案例,是使用字典实现统计每个字符出现次数,基于此案例,来展开字典的添加、删除、修改和输出。

首先

什么是字典?

字典通常指的是一种数据结构,用于存储键-值对。在计算机科学中,字典通常被称为哈希表或关联数组。

my_dict = {"name": "Alice", "age": 25, "city": "New York"}

有java基础的,可以理解为map集合。字典属于 ‘可变的数据类型’ ,但那些不可变数据类型,例如整形、字符串、浮点并不是不能修改,可变与不可变之间,其实就是它们的存储地址是否发生了变化。

---------------------------------------------------------------------------------------------------------------------------------

一、添加

字典的添加分为两种,一种为单个添加,一种为多个添加。

单个添加

my_dict = {'a': 1, 'b': 2}
my_dict['c'] = 3  # 添加新的键值对

多个添加

my_dict = {'a': 1, 'b': 2}
my_dict.update({'c': 3, 'd': 4})  # 一次添加多个键值对

还有一种是setdefault(),作用是如果键已经存在,则返回对应的值,不做任何修改;如果不存在,则插入新的键值对。

my_dict = {'a': 1, 'b': 2}
my_dict.setdefault('c', 3)  # 如果键 'c' 不存在,则添加键值对

但是总体使用下来,记住单个添加和多个添加就好。

案例代码中,就是通过for循环将str字符串中的单个字符,添加到字典count中的,如果字典中没有出现过此字符则赋值为1;

二、修改

如下:

my_dict = {"name": "Alice", "age": 25, "city": "New York"}
#值的修改
my_dict["name"]+="BBB"
my_dict["age"]+=10
#键的修改
my_dict["home"]=my_dict.pop('city')
print(my_dict.items())

效果:

字典的循环修改:

my_dict = {'a': 1, 'b': 2}
my_dict['c'] = 3  # 添加新的键值对
a = 0

while a<10:
    my_dict['c']+=1
    a+=1

print(my_dict['c'])

值的修改使用+=,数字是相加,字符串是追加,覆盖使用=;键的修改,使用pop()。

案例代码中,就是使用+=,当新的字符在原有的count字典已经出现过的时候,count的value值就会加1。

三、字典的删除

1,使用 del 关键字:
可以使用 del 关键字删除字典中特定的键值对。示例代码如下:

my_dict = {'a': 1, 'b': 2, 'c': 3}
del my_dict['a']  # 删除键为 'a' 的键值对

2,使用 pop() 方法: 字典的 pop() 方法可以根据键来删除对应的键值对,并返回被删除键对应的值。示例代码如下:

my_dict = {'a': 1, 'b': 2, 'c': 3}
value = my_dict.pop('b')  # 删除键为 'b' 的键值对,并返回值

这两个方法是比较实用的,还有一些随机删除、全部删除之类的,感兴趣的可以去搜下。

四、字典的输出

1,循环输出

class1 = {'丁一': 85, '王二麻子': 95, '张三': 75, '李四': 65, '赵五': 55}
for i in class1:  # 这个i代表的是字典中的键,也就是丁一、王二麻子等
    print(i) #输出的是key,就是丁一、王二麻等
    print(class1[i])#输出是value值,是85,95,75等

2,items()

class1 = {'丁一': 85, '王二麻子': 95, '张三': 75, '李四': 65, '赵五': 55}
a = class1.items()
print(a)

items() 方法会返回一个包含字典所有键值对的元组列表

3,列表推导式

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = {key: value for key, value in my_dict.items()}
print(keys)

4,单独输出键

(1)直接使用 for 循环遍历字典,而不指定值的部分。在这种情况下,循环将默认遍历字典的键。示例代码如下:

my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict:
    print(key)

(2)使用字典的 keys() 方法: 每个 Python 字典都有一个 keys() 方法,它返回一个包含字典所有键的视图对象。你可以将这个视图对象转换成列表或者直接在循环中使用。示例代码如下:

my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict.keys():  # 在循环中使用视图对象
    print(key)

(3)列表推导式

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys_only = {key for key in my_dict}
print(keys_only)

三种不同的方式,其输出的效果也是不同。

5,单独输出值

(1)使用字典的 values() 方法

my_dict = {'a': 1, 'b': 2, 'c': 3}
for value in my_dict.values():
    print(value)  # 逐个输出值

(2)使用列表推导式将值提取到一个列表中:

my_dict = {'a': 1, 'b': 2, 'c': 3}
values_list = [value for value in my_dict.values()]
print(values_list)  # 输出包含所有值的列表

案例代码是for循环遍历和item()方法结合使用,是为了分别输出key和value

---------------------------------------------------------------------------------------------------------------------------------

总结:按理说轮子有一个就够了,但是我提供了不同的方法,去完成这个案例,是希望大家学习代码不是去背,而是去理解,去找到一个适合自己的代码风格。如果有什么错误或者有什么建议也请在评论帮我指出来,不胜感激!

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值