Python 元组&字典&集合

1 元组

  • 元组是不可变序列
my_tuple = (10.20, 30, 40)
my_tuple[2] = 80
print(my_tuple[2])
    my_tuple[2] = 80
TypeError: 'tuple' object does not support item assignment
  • 如果元组不是空元组,它里面至少得有一个 ,
my_tuple = 10
print(my_tuple, type(my_tuple))
my_tuple = 10,
print(my_tuple, type(my_tuple))
10 <class 'int'>
(10,) <class 'tuple'>
  • 元组的解包:将元组当中的每一个元素赋值给变量
my_tuple = (10, 20, 30, 40)
a, b, c, d = my_tuple
print('a_=', a)
print('b_=', b)
print('c_=', c)
print('d_=', d)
a_= 10
b_= 20
c_= 30
d_= 40
  • 对元组解包时,变量的数量要和元组中元素的数量保持一致
  • 假如变量和元素不一致,可在变量前加一个 *,来获取元祖中的剩余元素
my_tuple = (10, 20, 30, 40)
a, *b, c = my_tuple
print('a_=', a)
print('b_=', b)
print('c_=', c)
a_= 10
b_= [20, 30]
c_= 40

2 字典

  • 字典是映射(mapping)数据结构
  • 字典的作用与列表类似,为用来存储对象的容器

2.1 字典的特点

  • 查询性能很好,但储存性能相对较差;列表正好相反
  • 字典中每个元素都有唯一的名字,通过这个名字可以快速查询到指定的元素,这个唯一的名字,一般称为键 key,通过 key 可查询 value 值,因此,字典也称之为键值对(key-value)结构
  • 每个字典可以有多个键值对,每个键值对我们可以称之为一项(item)

2.2 字典的使用

2.2.1 创建字典

  • dict():
    • 可用来创建字典
    • 也可将一个包含有双值子序列转换为字典
      • 双值序列:序列中有2个值,如:[1,3]、(‘a’,‘b’)、 ‘ab’
      • 子序列:序列的某个元素也为序列,则称该元素为子序列,如:[(),()]、[[],[],{}]
d = dict([('name', '钢铁侠'), ('age', 35)])
print(d, type(d))
{'name': '钢铁侠', 'age': 35} <class 'dict'>
  • get(key[,default]):
    • 根据键来获取字典当中的值
    • 如果字典当中没有这个 key 值 ,会返回一个 None
    • 可以指定一个默认值(default),来作为第二个参数,当获取不到 key 值时,则返回默认值
d = {'name': '钢铁侠', 'age': 38}
print(d.get('sex', "这个key值不存在"))
这个key值不存在

2.2.2 改变元素

  • setdefault(key[,default]):
    • 假如这个 key 已经存在于字典中,则返回 key 值,不会对字典有任何影响
    • 假如 key 不存在,则向字典中添加这个 key,并设置 value
d = {'name': '钢铁侠', 'age': 38}
d.setdefault('name','黑豹')
print(d)
{'name': '钢铁侠', 'age': 38}
d = {'name': '钢铁侠', 'age': 38}
d.setdefault('sex','男')
print(d)
{'name': '钢铁侠', 'age': 38, 'sex': '男'}

2.2.3 增加元素

  • update():将其它字典的 key-value 添加到当前字典中
d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'d': 4, 'e': 5, 'f': 6}
d1.update(d2)
print(d1)
print(d2)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
{'d': 4, 'e': 5, 'f': 6}

2.2.4 删除元素

  • del:删除字典的 key-value
  • popitem():
    • 随机删除一个 key-value(通常是最后一个)
    • 将删除的 key-value 以元组返回
d1 = {'a': 1, 'b': 2, 'c': 3}
p1 = d1.popitem()
print(d1, p1)
{'a': 1, 'b': 2} ('c', 3)
  • pop(key[,default]):
    • 根据 key 来删除 key-value,并返回 value 值
    • 可以指定一个默认值(default),来作为第二个参数,当获取不到 key 值时,则返回默认值
  • clear():清空字典

2.2.5 字典浅复制

  • copy():用于对字典进行一个浅复制
    • 浅复制只复制了字典本身,假如字典中的元素为一字典,则不被复制
d1 = {'a': {'name': '皮卡丘', 'age': 18}, 'b': 2, 'c': 3, 'property': '电'}
d2 = d1.copy()
d2['property'] = '火'
d2['a']['name'] = '小火龙'
print(d1, id(d1))
print(d2, id(d2))
{'a': {'name': '小火龙', 'age': 18}, 'b': 2, 'c': 3, 'property': '电'} 1960787992368
{'a': {'name': '小火龙', 'age': 18}, 'b': 2, 'c': 3, 'property': '火'} 1960788017368

2.2.6 遍历字典

  • keys():字典所有 key
  • values():字典所有 value
  • items():字典所有 item
d = {'a': 1, 'b': 2, 'c': 3}
for k, v in d.items():
    print(k, '=', v)
a = 1
b = 2
c = 3

3 集合

  • 集合的特点:
    • 集合只能储存不可变对象
    • 集合不能出现重复元素
    • 集合储存的对象是无序的,无法通过索引取值
  • 可用 set() 函数来创建集合
s = set({'a': 1, 'b': 2, 'c': 3}) 
# 将字典转换为集合时,只会获得	kye	
print(s, type(s))
{'c', 'a', 'b'} <class 'set'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值