字典
知识点
无序数据类型,与其他数据类型不同,字典的数据是以键值对的方式进行存储,键值对是可以进行修改的。
字典也用花括号{}表示,与集合的区别就是花括号里面是以键值对的形式存在,其定义如下:
字典名 = {键1:值1,键2:值2,键3:值3..}
特性:
1.键是唯一的,且键和值是一一对应,如果定义相同的键,那么新定义的值会覆盖原值
2.键必须不可变,可以用数字,字符串或元组,但不能用列表,值可以是任何数据类型
字典的创建
# dict.fromkeys(iterable,value)
# 作用:在创建字典的时候,能一次创建多个键值对
# iterable:序列,里面存放键值对的键,注意里面的元素必须是数字,字符串,元组中任意一种
# value:具体的一个数据,默认为None
my_dict=dict.fromkeys([1,'abc',(1,2,3)],1)
print(my_dict)
字典的访问
只能通过唯一的键来访问对应的值,其访问方式为:字典名[键名];访问不存在的键,会报错
# 字典的访问
my_dict=dict.fromkeys(['key1','key2','key3'])
print(my_dict)
print(my_dict['key4'])
键值对的添加:
可以直接添加
# 键值对的添加
my_dict={'key1':'value1','key2':'value2','key3':'value3'}
my_dict['key4']='value4'
print(my_dict)
也可以使用update方法将两个字典合并为一个
# update :合并两个字典
my_dict1 = {1:1,2:2,3:3}
my_dict2 = {4:1,5:2,6:3}
my_dict1.update(my_dict2)
print(my_dict1)
键值对的删除
pop
键值对的修改
对于修改单个键值对,可以通过直接访问键名来修改对应的值
对于修改多个键值对,可以使用update通过覆盖原来的键值对来修改
键值对的查找
直接通过键名来查找,不存在会报错
使用get函数来查,如果键不存在,可以指定返回的提示语
使用in\not in来查找
使用setdefault函数查找,如果存在就返回对应的值,不存在就创建一个新的键值对,通过参数来获取
字典的特殊操作
len():返回键值对的个数
keys:返回字典所有的键
values:返回字典所有的value值
items:返回字典所有的键值对
字典的推导式;
{key_expression:value_expression for item1 in iterable if condition}
课后习题
编程题
1.编写一个 Python 脚本,接收一段英
文文本(字符串)。统计文本中每个
单词出现的频率(次数),忽略大小
写和标点符号。将结果存储在一个字
典中,其中键是小写的单词,值是该
单词出现的次数。最后打印这个字
典。例如,输入 "Hello world!
Hello Python.",输出应类似于
{'hello': 2, 'world': 1, 'python':1} 。
'''
参考答案:
text = input("请输入一段英文文本: ").lower() # 转换为小写
手动清理文本:非字母数字或下划线的字符替换为空格
cleaned_text = []
for char in text:
if char.isalnum() or char == '_': # 保留字母、数字、下划线
cleaned_text.append(char)
else:
cleaned_text.append(' ')
分割单词(多个空格自动处理)
words = ''.join(cleaned_text).split()
统计频率(与原逻辑一致)
word_counts = {}
for word in words:
word_counts[word] = word_counts.get(word, 0) + 1
print("\n单词频率统计:")
print(word_counts)
浙公网安备 33010602011771号