python学习记录——字典篇

本文详细介绍了Python字典的创建、访问、修改、删除等基本操作,包括使用key或get方法访问,以及字典的遍历。同时,讲解了字典中添加、修改和删除数据的方法,并展示了如何通过keys、values和items遍历字典内容。最后,讨论了字典与其他容器的公共方法,如合并、复制和元素检查。
摘要由CSDN通过智能技术生成
字典的定义和访问
<1> 使用key访问
<2> 使用 字典.get(key[,数据值])访问
# 字典 dict 使用{}定义,是由键值对组成(key-value)
# 变量 = {key1: value1, key2: value2, ···} 一个key: value 键值对是一个元素
# 字典的 key 可以是 字符串类型和数字类型(int float), 不能是 列表
# value值可以是任意类型

# 1. 定义空字典
my_dict = {}
my_dict1 = dict()
print(my_dict, type(my_dict))
print(my_dict1, type(my_dict1))

# 2. 定义带数据的字典
my_dict2 = {'name': 'isaac', 'age': 18, 'like': ['学习', '购物', '游戏'], 1: [2, 5, 8]}
print(my_dict2)

# 访问 value 值:在字典中没有下标的概念,所以要使用 key 值访问 value 值
# 18
print(my_dict2['age'])
# '购物'
print(my_dict2['like'][1])

# 如果key值不存在
print(my_dict2['gender'])  # 代码报错,因为key值不存在
# 字典.get(key) 如果key值不存在,不会报错,返回的是None
print(my_dict2.get('gender'))

# 字典.get(key, 数据值)   如果key存在,返回key对应的value值,如果key不存在,返回书写的数据值
print(my_dict2.get('gender', '男'))  # 男
print(my_dict2.get('age', 1))  # 18

# 字典长度由键值对个数决定,可以由len()计算
print(len(my_dict2))  # 4


字典中添加和修改数据
my_dict = {'name': 'isaac'}

# 字典中添加和修改数据,使用key值进行添加和修改
# 字典[key] = 数据值;  如果key值存在就是修改,如果key值不存在,就是添加

my_dict['age'] = 18  # key值不存在,添加
print(my_dict)  # {'name': 'isaac', 'age': 18}

my_dict['age'] = [1, 2, 3]  # key值已经存在,就是修改数据
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3]}

# 注意点:key值 int的1 和 float的1.0 代表一个key值 2和2.0一样,3和3.0一样……
my_dict[1] = 'int'
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3], 1: 'int'}
my_dict[1.0] = 'float'
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3], 1: 'float'}
字典中删除数据
<1> del 字典名[key]
<2> 字典.pop(key)
<3> 字典.clear()
<4> del 字典名
my_dict = {'name': 'isaac', 'age': 19, 1: 'float', 2: 'aa'}

# 根据key值删除数据  del 字典名[key]
del my_dict[1]
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3], 1: 'float'}

# 字典.pop(key)  根据key值删除,返回值是删除的key对应的value值
result = my_dict.pop('age')
print(my_dict)  # {'name': 'isaac', 2: 'aa'}
print(result)  # 19

# 字典.clear() 清空字典,删除所有的键值对
my_dict.clear()
print(my_dict)  # {}

# del 字典名  直接将这个字典删除,不能使用这个字典了
del my_dict  # 后边的代码不能再直接使用这个变量了,除非再次定义
print(my_dict)  # NameError: name 'my_dict' is not defined
字典中遍历数据
<1> for循环直接遍历字典,遍历的是字典的key值(自己测试value也可以。。)
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# for循环体使用key直接遍历字典
for key in my_dict:
    print(key, my_dict[key])
    # name isaac
    # age 18
    # gender 男
    
# for循环体使用value直接遍历字典
for value in my_dict:
    print(value, my_dict[value])
    # name isaac
    # age 18
    # gender 男
<2> 字典.keys()
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# 字典.keys() 获取字典中所有的key值,得到的类型是dict_keys,该类型具有的特点是
# 1. 可以使用list() 进行类型转换,即将其转换为列表类型
# 2. 可以使用for循环进行遍历
result = my_dict.keys()
print(result, type(result))  # dict_keys(['name', 'age', 'gender']) <class 'dict_keys'>
for key in result:
    print(key)
    # name
    # age
    # gender
<3> 字典.values()
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# 字典.values() 获取所有的value值,类型是 dict_values
result = my_dict.values()
print(result, type(result))  # dict_values(['isaac', 18, '男']) <class 'dict_values'>
for value in my_dict.values():
    print(value)
<4> 字典.items()
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# 字典.items()  获取所有的键值对,类型是 dict_items,(key,value)组成元组类型
# 1.可以使用list() 进行类型转换,即将其转换为列表类型
# 2.可以使用for循环进行遍历
result = my_dict.items()  # ()是元组,你还记得吗
print(list(result))  # [('name', 'isaac'), ('age', 18), ('gender', '男')]
print(result, type(result))  # dict_items([('name', 'isaac'), ('age', 18), ('gender', '男')]) <class 'dict_items'>
for item in my_dict.items():
    print(item[0], item[1])
    # name isaac
    # age 18
    # gender 男

# 拆包:将容器中的数据分别给到不同的变量
for k, v in my_dict.items():  # k是元组中的第一个数据,v是元组中的第二个数据
    print(k, v)
    # name isaac
    # age 18
    # gender 男
容器的公共方法
1. 运算符
运算符Python 表达式结果描述支持的数据类型
+[1, 2] + [3, 4][1, 2, 3, 4]合并字符串、列表、元组
*[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]复制字符串、列表、元组
in3 in (1, 2, 3)True元素是否存在字符串、列表、元组、字典
not in4 not in (1, 2, 3)True元素是否不存在字符串、列表、元组、字典
注意:

*+,得到的是一个新容器

in/not in判断的是字典的key值是否存在

+
>>> "hello " + "itcast"
'hello itcast'
>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
>>> ('a', 'b') + ('c', 'd')
('a', 'b', 'c', 'd')
*
>>> 'ab' * 4
'ababab'
>>> [1, 2] * 4
[1, 2, 1, 2, 1, 2, 1, 2]
>>> ('a', 'b') * 4
('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')
in
>>> 'itc' in 'hello itcast'
True
>>> 3 in [1, 2]
False
>>> 4 in (1, 2, 3, 4)
True
>>> "name" in {"name":"Delron", "age":24}
True

注意,in在对字典操作时,判断的是字典的键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值