学习Python的第八天

可变对象

  • 可变对象指的就是值可以被改变的对象,例如列表和字典。下面用列表为例,方便理解。

a = [1,2,3,4,5,6,7,8,9]
# 结果相同,同一个对象
b = a
print('a id is:',id(a))
print('b id is:',id(b))
print( a is b)
# a id is: 2027104013824
# b id is: 2027104013824
# True

这里将 a 赋值给了 b ,那么a 和 b 指向同一个对象

a = [1,2,3,4,5,6,7,8,9]
# 通过索引来修改 b 的值,结果依然相同,并且a = b
b = a
b[0] = 10
print('a id is:',id(a))
print('b id is:',id(b))
print( a is b)
# a id is: 2066374975360
# b id is: 2066374975360
# True

这里呈上,a 和 b 依然指向同一个对象,两者依然是相同的。

a = [1,2,3,4,5,6,7,8,9]
# 赋值给 b ,使 a == b ,但是此时 a 和 b 不是同一个对象(这里我们直接 copy 一下 a)
b = a.copy()
print('a id is:',id(a))
print('b id is:',id(b))
print( a is b)
# a id is: 2605618290560
# b id is: 2605618315200
# False

这里的 b 和 a 不是同一个对象,对 b 进行了赋值,虽然两者的值是一样的,但是二者的 id 不同,不再是同一个对象,修改其中一个,另一个不会发生变化。

元组

  1. 概念
    元组(tuple)是Python 中另一重要的序列结构,与列表类似,也是由一系列按特定顺序排列的元素组成。但是它是不可变序列
  2. 创建于删除
    tuplename=(element1,element2,…,element n)
    创建元组使用的是 (),但只要用 ’ , ’ 将一组值分隔开来,Python就可以认为它是元组
tup = 1,2
print(tup,type(tup))
# (1, 2) <class 'tuple'>
tup = tuple([1,2,3,4,7,8,9,7])   # 传一个可迭代的对象
a , *b, c = tup
print('a is :',a)
print('b is :',b)
print('c is :',c)
# a is : 1
# b is : [2, 3, 4, 7, 8, 9]
# c is : 7

这里是对元组的解包。当元组的元素与变量数量不一致时,可以在变量前面加 * 号,这样变量就会获取元组中剩余的变量,以列表的形式返回

字典

  1. 概念
    字典(dictionary)和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键-值对”的形式存放的
  2. 简介
    标识符为 {} ,也可以用 dict() 函数创建
a = {'name':'iron man',}
print(a)

# zip 打包(序列长度一样),取长度最小序列的对应
b = ['王同学','毛日古','王华建','欧明亮','石子呷']
c = ['妇女之友','是个好人','是个大帅哥','是个人','是个石']
d = dict(zip(b,c))
print(d)
# {'name': 'iron man'}
# {'王同学': '妇女之友', '毛日古': '是个好人', '王华建': '是个大帅哥', '欧明亮': '是个人', '石子呷': '是个石'}
# 可以将一个包含有双值子序列的序列转换为字典
x = dict(name = '毛日古',age = 22,sex = 'man',length = 1.75)
print(x)
y = dict([('name','毛日古'),('age',22),('sex','man')])
print(y)
  1. 字典的修改
  • 可以通过 key 访问值,进行修改
# 访问 键(key) 得到值(value)
n = 'name'
e['name'] = '毛日古'
print(e[n]) # 注意 键(key) 要加 '' ,不然会当作变量处理
phone = 1251351
e['phone'] = phone
print(e)
# 毛日古
# {'name': '毛日古', 'age': 22, 'sex': 'man', 'phone': 1251351}
  • dict.get(key,[default]) 如果 key 存在,则返回对应的值;如果不存在 key ,咋返回[defalut]
e = {
    'name' : 'iron man',
    'age' : 22,
    'sex' : 'man'
}
print(e.setdefault('name','spyder man'))  # 存在 key ,返回 key 的值,不对字典做任何修改
print(e)
print(e.setdefault('call','love you 3000 years'))
print(e)
# iron man
# {'name': 'iron man', 'age': 22, 'sex': 'man'}
# love you 3000 years
# {'name': 'iron man', 'age': 22, 'sex': 'man', 'call': 'love you 3000 years'}
  • update() 将其他字典当中k-v添加到当前字典中,如果有重复的key,后边会覆盖前面的
d = {'a':1,'b':2,'c':3}
d2 = {'d':4,'e':5,'f':6,'a':7}
d.update(d2)   # 将 d2 的值添加到 d 中
print(d)
# {'a': 7, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
  • 删除 del
d = {'a':1,'b':2,'c':3}
del d['a']
print(d)
# {'b': 2, 'c': 3}
  • popitem() 随机删除字典中的一个Key-Value。一般都会删除最后一个键值对,删除之后会把删除的k-v作为返回值返回
d = {'a':1,'b':2,'c':3}
d.popitem()
print(d)
# {'a': 1, 'b': 2}
  • pop(key,[default]) 可以根据Key来删除k-v 它的返回值是删除的 value值
d = {'a':1,'b':2,'c':3}
d.pop('a')
print(d)
# {'b': 2, 'c': 3}
  • clear()清空字典
d = {'a':1,'b':2,'c':3}
d.clear()
print(d)
# {}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值