元组和字典的详解

1.元组

  • 元组是一个不可变的序列(元组内的数据是不可变的,不可更改)(不希望数据发生改变的时候我们就用元组,其余的情况都用列表)
  • 元组的表达形式() tuple
  • tuple1=10#这是一个整型
  • tuple1=10, #这是一个元组
  • 如果一个元组不是空元组,那么元组内最少有一个逗号

元组的拆包

1.tuple1=(1,2)
a,b=tuole1
print(a,b)
输出:1,2

  • 拆包的时候有*,有且只能有一个
    2.tuple1=(1,2,3)
    a,*b=tuole1
    print(a,b)
    输出:1,[2,3]

字符串的拆包

a=‘abcdf’
b,*c=a
print(b,c)
输出:a [‘b’,‘c’,‘d’,‘f’]

列表的拆包

a=[1,2,3,4,5]
b,*c=a
print(b,c)
输出:1 [2,3,4,5]

2.字典(可变类型)

我们主要可以通过3种方式对字典进行遍历
• keys() 该方法返回字典所有的key
• values() 该方法返回一个序列 序列中保存有字典的值
• items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列 双值分别是 字典中的key和value

  • 为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value

  • key-value我们称之为键值对,也可以称呼他为一项item

  • 由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。

  • 当字典的key有重复的时候,后面的key-value会替换前面的

字典的创建

dict1=dict(name=‘你是’,age=‘18’,sex=‘男’)
dict1=dict([(name,‘你是’,age,‘18’,sex,‘男’)])

字典的增删改除

  • len() eg:len(dict1)=3在字典中依然实用

  • in 和not in 检测的是key

  • 使用key获取value

  • 1.dict[key] #如果不存在key会报错

  • 2.dict.get(key) #如果不存在key不会报错

  • 修改字典

  • dict[key]=value

  • 向字典添加key-value

  • 1.dict.setdefault(key,[default])

  • 如果这个key以经存在于这个字典中,则返回value,不会对字典有任何影响,如果不存在,则向字典中添加这个key,并设置了value值

  • 2.dict.update(),将字典中的key-value添加到当前字典当中

  • d1={‘1’:1}

  • d2={’2‘:2}

  • d1.update(d2)

  • print(d1)

  • 输出:{‘1’:1,’2‘:2}

  • 删除字典

  • 1.del 通过关键字删除

  • dict1={name:‘你是’,age:‘18’,sex:‘男’}

  • del dict1[‘name’]

  • 2.dict.popitem()随机删除一个键值对,一般都会删除最后一个,有一个返回值就是你删除的对象,结果是一个元组

  • dict.popitem()

  • 3.dict.pop(ket,[default]) 根据key来删除键值对

  • dict.pop(‘sex’)

  • 4.dict.clear()清空字典

  • dict1.clear()

深拷贝和浅拷贝

  • 浅拷贝
  • 只能对第一层的数据进行拷贝,如果第一层的数据也是可变类型,那么浅拷贝无法将这个数据重新拷贝一份,形成新的id
  • 俩个地址不一样
  • 输出:51144696 51144776在这里插入图片描述
  • 要做拷贝的对象必须是可变类型
  • 其中列表的地址一样

在这里插入图片描述

  • 深拷贝
  • 深拷贝可以对全部的数据进行拷贝生成新的id
  • import copy
  • copy.copy()#浅拷贝
  • dict3=copy.deepcopy(dict)
  • 函数的遍历
    在这里插入图片描述

作业1.a = {“name”:“123”,“data”:{“result”:[{“src”:“python1”},{“src”:“python2”},{“src”:“python3”}]}} 找到python1/python2/python3

  • a = {‘name’:‘123’,‘data’:{‘result’:[{‘src’:‘python1’},{‘src’:‘python2’},{‘src’:‘python3’}]}}
    c=a.get(‘data’)
    print©
    d=c.get(‘result’)
    print(d)
    for j in d[0].values():
    print(j)
    for k in d[1].values():
    print(k)
    for p in d[2].values():
    print§
    在这里插入图片描述
    在这里插入图片描述

作业2.有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。

  • a=[11,22,33,44,55,66,77,88,99,90]
    dict1={‘名字’:‘name’,‘颜色’:‘red’}
    d,f=[],[]
    for i in a :
    if i>66:
    d.append(i)
    elif i<66:
    f.append(i)
    else:
    continue
    d=dict1.setdefault(‘key1’,d)
    print(dict1)
    c=dict1.setdefault(‘key2’,f)
    print(dict1)
    在这里插入图片描述
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最低调的奢华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值