python容器3——字典

(1) 什么是字典

字典:python中使用关键字dict表示

字典中允许通过key:value键值对的方式存储数据,让数据的管理更加友好!

如图:

 字典是一个哈希结构 (传入一个值算出内存地址,将该值保存在该内存地址上)

字典的元素格式是 键值对:

dc = {'姓名':'lyh','年龄':18,'身高':183,'体重':183}

(2) 声明字典

声明空字典

# 声明空字典
d1 = {}  # 推荐:语法简洁
d2 = dict()

print(d1, type(d1))
print(d2, type(d2))

声明非空字典

# 声明非空字典三种方式

# 了解
d3 = dict(name='张三', age=18, sex='男')
print(d3, type(d3))

# 不推荐
d4 = dict([('name', '张三'), ('age', 18), ('sex', '男')])
print(d4, type(d4))

# 推荐
d5 = {'name': '张三', 'age': 18, 'sex': '男'}
print(d5, type(d5))

(3)字典的操作函数

函数描述
clear()清空字典数据-了解
copy()复制字典数据-了解
fromkeys()通过指定的key创建字典-了解
get()[掌握]根据key获取数据
items()[掌握]获取所有的键值对数据
keys()[掌握]获取所有的key数据
pop()[掌握]根据key删除一个键值对数据
popitem()随机删除一个数据
setdefault()添加数据,如果key存在什么都不做
update()更新数据
values()[掌握]获取所有的value数据
dc = {'姓名':'lyh','年龄':18,'身高':183,'体重':183}

#增
#添加新的键值对
dc.setdefault('姓名1',"李四")
dc['哈哈'] = 'hehe'

#删
dc.pop('姓名') # 删除指定的键

dc.popitem() # 删除字典中最后一个元素

dc.clear() # 清空字典

# 改
dc['姓名'] = "张三"
print(dc)

# 查
print(dc.get('姓名123456'))
print(dc['姓名123456'])

# 提取key的合集

print(dc.keys())

# 提取value的合集

print(dc.values())

# 将字典转为一个列表,每一个元素都是一个2元组

print(dc.items())

根据条件遍历

for key in dc.keys():
    print(key)
    print(dc[key])

for value in dc.values():
    print(value)

for key,value in dc.items():
    print(key,value)

### Python 字典与字符串的计算思维训练 #### 创建和初始化字典Python中,字典是一种映射类型的数据结构,允许存储键-值对。可以通过大括号`{}`来定义一个字典,并使用冒号分隔键和对应的值[^1]。 ```python person_info = {"name": "Alice", "age": 25, "city": "Beijing"} ``` #### 访问字典中的元素 要获取某个特定键所关联的值,可以采用方括号语法指定该键名;如果尝试访问不存在的键,则会引发异常。为了避免这种情况发生,建议先检查键是否存在或使用内置方法`.get()`。 ```python print(person_info["name"]) # 输出 Alice print(person_info.get("gender")) # 返回 None 而不是抛出错误 if "email" in person_info: print(person_info["email"]) else: print("Email not found.") ``` #### 修改和更新字典内容 由于字典是可变容器模型的一部分,在不改变其身份的情况下可以直接修改其中的内容。这既包括新增条目也涵盖了已有项的替换操作[^2]。 ```python person_info.update({"age": 26}) person_info["hobby"] = ["reading", "swimming"] ``` #### 遍历字典 遍历时可以选择只迭代所有的键、仅限于值亦或是同时取得两者组合而成的关键信息元组形式。对于后者而言,推荐借助.items()成员函数实现更高效的循环逻辑构建。 ```python for key in person_info.keys(): print(f"{key}: {person_info[key]}") for value in person_info.values(): print(value) for k, v in person_info.items(): print(k, '->', v) ``` #### 处理字符串基础功能 字符串是由零个或多个字符构成的一维数组,支持索引定位单个字母以及切片提取子串片段。此外还提供了诸如大小写转换、去除空白符等功能接口方便日常开发工作。 ```python text = " Hello World! " cleaned_text = text.strip().lower() substring = cleaned_text[:5] replaced_string = cleaned_text.replace('world', 'everyone') formatted_message = f"Greetings to {replaced_string}." ``` #### 实际案例分析:多项式的求导运算 给定一个多项目式表达式作为输入参数传入名为`diff`的方法体内,内部实现了基于幂法则完成微积分学意义上的导数计算过程并返回新的系数表征结果集合作为输出对象[^3]。 ```python def diff(poly_dict): result = {} for power, coefficient in poly_dict.items(): if power != 0: new_power = power - 1 derived_coefficient = power * coefficient result[new_power] = derived_coefficient return result ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值