Python笔记7

字典

1、字典 dict ,字典中的数据是由键(key)值(value)对组成的(键表示的数据的名字,值就是具体的数据)
2、在字典中一组键值对是一个数据,多个键值对之间使用 逗号隔开
变量 = {key:value,key:value,…}
3、一个字典中的键是唯一的,不能重复的,值可以是任意数据
4、字典中的键一般是字符串,可以是数字,不能是列表

  • 定义
# 1、使用 类实例化的方法
my_dict= dict()
print(type(my_dict),my_dict) # <class 'dict'> {}

# dict() 不能转列表和元组,字符串

# 2、直接使用{}定义
# 空字典
my_dict1= {}
print(type(my_dict1),my_dict1) #<class 'dict'> {}

# 非空字典   小明,18,1.71,True 软件工程 大数据 人工智能
my_dict2 = {'name':'小明','age':18,'height':1.71,'is_man':True,'like':['软件工程','大数据','人工智能']}
print(my_dict2) #{'name': '小明', 'age': 18, 'height': 1.71, 'is_man': True, 'like': ['软件工程', '大数据', '人工智能']}
print(len(my_dict2)) # 5
  • 增加和修改操作
    语法:字典[键] = 数值
    1、如果键已经存在,就是修改数据值
    2、如果键不存在,就是添加数据(即添加键值对)
# 定义字典 小明 18 爱好
my_dict = {"name":"小明","age":"18","like":["软件工程","大数据","人工智能"]}

# 1、添加性别信息
my_dict['sex'] ='男'
print(my_dict) # {'name': '小明', 'age': '18', 'like': ['软件工程', '大数据', '人工智能'], 'sex': '男'}

# 2、修改年龄为19
my_dict['age']=19
print(my_dict) #{'name': '小明', 'age': 19, 'like': ['软件工程', '大数据', '人工智能'], 'sex': '男'}

# 3、添加一个爱好  学习
my_dict['like'].append('学习')
print(my_dict) # {'name': '小明', 'age': 19, 'like': ['软件工程', '大数据', '人工智能', '学习'], 'sex': '男'}

# 删除爱好 软件工程
my_dict['like'].remove('软件工程')
print(my_dict) #{'name': '小明', 'age': 19, 'like': ['大数据', '人工智能', '学习'], 'sex': '男'}
# 删除下标为1的爱好
my_dict['like'].pop(1)
print(my_dict) #{'name': '小明', 'age': 19, 'like': ['大数据', '学习'], 'sex': '男'}
  • 删除
    • 删除指定键值对
    del 字典[键]
    字典.pop(键)   #键必须书写
    
    • 清空
    字典.clear()
    
    • 代码案例
    # 删除sex键值对
    del my_dict['sex']
    print(my_dict) # {'name': '小明', 'age': 19, 'like': ['软件工程', '大数据', '人工智能', '学习']}
    
    # 字典.pop('键')
    my_dict.pop('age')
    print(my_dict) # {'name': '小明', 'like': ['软件工程', '大数据', '人工智能', '学习']}
    
    # 删除 爱好(本质操作:在列表中删除 数据值)
    # 删除爱好 软件工程
    my_dict['like'].remove('软件工程')
    print(my_dict) # {'name': '小明', 'like': ['大数据', '人工智能', '学习']}
    # 删除下标为1的爱好
    my_dict['like'].pop(1)
    print(my_dict) # {'name': '小明', 'like': ['大数据', '学习']}
    
    # 清空键值对
    my_dict.clear()
    print(my_dict) #{}
    
  • 查询-根据键获取对应的值
    字典中没有下标的概念,想要获取数据值,要使用 key(键)来获取
    • 使用字典[键]
      1、如果存在键,返回键对应的数据值
      2、如果键不存在,会报错
    • 使用字典.get(键)
      1、如果键存在,返回键对应的数据值
      2、如果键不存在,返回括号中书写的数据值(None)
      一般建议使用get方法
    • 代码案例
    
    my_dict = {"name":"小明","age":"18","like":["软件工程","大数据","人工智能"]}
    # 1、获取 名字
    print(my_dict['name']) # 小明
    print(my_dict.get('name')) # 小明
    print(my_dict.get('name'),'zzz') # 小明 zzz
    
    # 2、获取 sex 性别
    #print(my_dict['sex']) # 会报错, key不存在
    print(my_dict.get('sex')) # None
    print(my_dict.get('sex','保密')) # 保密
    
    # 3、获取第二个爱好
    print(my_dict['like'][1]) # 大数据
    print(my_dict.get('like')[1])  # 大数据
    
  • 字典的遍历
    • 对字典的进行遍历
    for 变量 in 字典:
    	print(变量) # 变量就是字典 key,键
    for 变量 in 字典.keys(): # 字典.keys() 可以获取字典中所有的键
    	print(变量)
    
    • 对字典的进行遍历
    	for 变量 in 字典.values():
    		print(变量) #  字典.values() 可以获取字典中所有的值
    
    • 对字典的键值对进行遍历
    	for 变量1,变量2  in 字典.items(): # 变量1 为 键,变量2 为 键对应的值
    		print(变量) #  字典.items() 可以获取键值对
    
    • 代码案例
    # 定义字典
    my_dict = {'name':'小明','age':18,'sex':'男'}
    
    # 1、遍历字典的键
    for k in my_dict:
        print(k)
    for k in my_dict.keys():
        print(k)
    print('-'*30)
    
    # 2、遍历字典的值
    for k in my_dict.values():
    	print(k)
    print('-'*30)
    
    # 3、遍历字典的键值对
    for k in my_dict.items():
        print(k)
        
    for k,v in my_dict.items():
        print(k,v)
    
    '''
    name
    age
    sex
    name
    age
    sex
    ------------------------------
    小明
    18
    男
    ------------------------------
    ('name', '小明')
    ('age', 18)
    ('sex', '男')
    name 小明
    age 18
    sex 男
    '''
    

容器部分总结

1、字符串、列表、元组 支持加法运算

str1 = 'hello' + ' world'   # 'hello world'
llist1 = [1,2] + [3,4]    # [1, 2, 3, 4]
tuple1 = (1,2) + (3,4) #(1, 2, 3, 4)

2、字符串、列表、元组支持乘一个数字

'hello ' * 3   # 'hello hello hello '
[1, 2] * 3   # [1, 2, 1, 2, 1, 2]
(1, 2) * 3   # (1, 2, 1, 2, 1, 2)

3、len()在容器中都可以使用
4、in 关键字在容器中都可以使用,注意,在字典中判断的是字典的键是否存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值