Python学习——第三课进阶语法(二)

一、进阶语法学习

        今天学习Python中的其他容器,前面学习了字符串,列表,元组,还有两个容器,接着学完——字典和集合。

        (一)字典,在Python中,字典是一种键值对的数据容器。

# Python中的字典是一种键值对的数据结构,这个和Java中的Map集合很相似
"""
# 定义格式:
# 字典名 = {键1:值1,...}
# 允许建立空字典
"""
program = {}
program = {"底层语言":"C/C++","进阶语言":"Java","脚本语言":"Python","程序员节":1024}

# 通过键获取值
# 格式:字典名[键]
print(program["底层语言"])
print(program["程序员节"])

# 通过get方法来获取字典元素的值
value = program.get("程序员节")
print("通过get方法获取字典值是%s"%value)

# 增加字典元素,尾部插入
# 格式:字典名[键] = 值
program["前端脚本"] = "JS"
print(program)

# 删除字典指定元素,使用del函数
# del program["程序员节"]
# print("删除程序员节后的字典为%s"%program)

# 删除字典指定元素,可以使用pop方法
value = program.pop("程序员节")
print(f"被删除的值是{value}")
print("删除程序员节后的字典为%s"%program)

# 删除所有元素,使用clear函数
# program.clear()
# print(program)

# 删除字典,使用del方法
# del program

# 修改字典元素
# 格式:字典名[键] = 新值
program["程序员节"] = 10.24
print(program)

# 获取字典的长度,使用len方法
print(len(program))

# 获取字典元素,使用item方法
# 当然可以单独遍历字典的键和值,Python中提供了keys方法和values方法
for name,pro in program.items():
    print("键是%s"%name)
    print("值是%s"%pro)

"""
# 总结
# 1.字典里面可以嵌套其他的容器
# 2.字典是无序的,可以进行修改
# 3.字典的键是唯一的,值可以重复
# 4.如果键重复了,值会被第二个的值覆盖
"""

        (二)集合,集合是一个本身可变元素内容不可变的容器。

# Python中的集合是一种无序且唯一的容器
"""
# 定义格式:
# 集合名 = {} 或者 使用set()
"""
program = {"C/C++","Java","Python"}
print(f"集合program是{program}")

# 使用set方法会将字符串拆开为一个集合,去除重复的元素
name = set("hanli,hello")
age = set("123")
chinese = set("你好,欢迎你")
print(f"集合name是{name}")
print(f"集合age是{age}")
print(f"集合chinese是{chinese}")

# Python中的集合与大数据有缘,它的一些操作
A = {"20","22","08","17","18","19"}
B = {"20","22","08","2"}
# 交集,使用逻辑与(&)
C = A&B
print(f"A和B的交集是{C}")

# 并集,使用(|)
D = A|B
print(f"A和B的并集是{D}")

# 差集,使用(-)
E = A-B
print(f"A和B的差集是{E}")

# 对称差集,使用(^)
F = A^B
print(f"A和B的对称差集是{F}")

# 添加元素,使用add方法
address = {"北京","上海","广州","深圳"}
address.add("杭州")
print(f"添加元素后的集合address为{address}")

# 移除元素,使用remove方法,discard方法,pop方法
# remove方法,如果元素不存在,会产生KeyError
# discard方法,如果元素不存在,不会产生KeyError,会返回None
# pop方法,随机删除元素,会返回删除的元素,如果集合为空则报TypeError
address.remove("广州")
# address.discard("广州")
# address.pop()
print(f"删除广州后的集合address为{address}")

# 集合的复制分为深复制和浅复制
# 深复制
add = address
add.add("厦门")
print(f"深复制时的add为{add}")
print(f"深复制时的address为{address}")

# 浅复制
adds = add.copy()
adds.add("澳门")
print(f"浅复制时的add为{add}")
print(f"浅复制时的adds为{adds}")

# 冻结集合frozenset
# 集合(set)是可变的,冻结集合是不可变的
# 冻结完成后,不可使用add和remove方法
# 元组、列表也可以被冻结成集合
X = frozenset({"sd","sdc","hh"})
Y = frozenset((1,2,3,4))
Z = frozenset([12,23,33,4])
print(X)
print(Y)
print(Z)

"""
# 总结
# 1.集合是一种本身可变元素内容不可变的容器,集合是无序且唯一
# 2.集合的深复制,新集合做操作时会改变原来的集合
# 3.集合的应用突显在它在数学领域的作用,可以进行数据处理
"""

 二、总结

        学习到这,Python中的容器基本学完了,容器在开发中比较常用,可以很好的处理一些实际业务,需要多加练习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值