python第五节(python基础类型2)

python基础类型2

元组

元组的介绍
我们知道,用方括号括起来的是列表,那么用圆括号括起来的是什么,就是元组。
元组也是序列结构,但是是一种不可变序列,可以简单的理解为内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。
元组与列表相同的操作

  • 使用方括号加下标访问元素
  • 切片(形成新元组对象)
  • tuple.count()/tuplr.index()
  • len()/max()/min()
    在这里插入图片描述
    在这里插入图片描述
    元组中不允许的操作
  • 修改、新增元素
  • 删除某个元素(但可以删除整个元组)
  • 所有会对元组内部元素发生修改动作的方法。例如,元组没有remove,append,pop等方法
    在这里插入图片描述
    列表和元组的转换
    使用list函数可以把元组转换成列表
    使用tuple函数可以把列表转换成元组
    在这里插入图片描述

字典

字典的介绍
Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。包含的元素个数不限,值得类型也可以是其它任何数据类型!
但是字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,但使用最多的还是字符串。列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的,但值则不必。
字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,例如:
d = {key1 : value1,key2 : value2}
字典可精确描述为不定长、可变、散列的集合类型
在这里插入图片描述
创建字典
dict()函数是Python内置的创建字典的方法。
dict(mapping)
dict(iterable)
dict(**kwargs)

dic1 = {"name":"amy","age":"18","hobby":["eat","sleep"]}
print(dic1)
dic2 = dict(name="amy",age=18)
print(dic2)
dic3 = dict([('name','amy'),('age',18)])
print(dic3)
'''
[1,2,3,4]-->['1','2','3','4']
map() # 根据提供的函数对指定序列做映射
zip() # 将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,
返回由这些元组组成的列表
'''
li= [1,2,3,4]
# li[:] = ['1','2','3','4']
print(list(map(str,li)))
'''lik与liv里面————对应的元素-->('name','amy')'''
lik = ['name','age']
liv = ['amy',18]
def fmap(a,b):
    return (a,b)
print(dict(map(fmap,lik,liv)))
print(list(map(fmap,lik,liv)))
print(zip(lik,liv))
print(list(zip(lik,liv)))

在这里插入图片描述
删除字典元素、清空字典和删除字典
使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典
在这里插入图片描述
字典的方法
get(key)返回指定键的值,如果值不在字典中,则返回default值
items()以列表返回可遍历的(键,值)元组对
key()以列表返回字典所有的键
values()以列表返回字典所有的值

dic1 = {"name":"自由","age":20}
print(dic1['name'])
print(dic1.get('name'))
# print(dic1['sex'])
print(dic1.get('sex'))
print(dic1.items())
for k,v in dic1.items():
    print(k,v)
print(dic1.keys())
print(dic1.values())
dic2 = {'Qian':90,'Sige':85,'FS':88}
print(sorted(dic2))
print(sorted(dic2.values()))
print(list(zip(dic2.values(),dic2.keys())))
print(sorted(list(zip(dic2.values(),dic2.keys()))))

字节

bytes的介绍
在Python3以后,字符串和bytes类型彻底分开了。字符串是以字符串为单位进行处理的,bytes类型是以字节为单位处理的。
bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是不可变的序列对象。
Python3中,bytes通常用于网络数据传输、二进制图片和文件的保存等等。可以通过调用bytes()生成bytes实例,其值形式为b’xxxxx’,对于同一个字符串如果采用不同的编码方式生成bytes对象,就会形成不同的值。
在这里插入图片描述

集合

集合的介绍
set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用set()而不是{},因为后者创建的是一个空字典。
集合数据类型的核心在于自动去重。

添加元素
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
集合更新
可以通过update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重
删除元素
通过remove(key)方法删除指定元素,或者使用pop()方法。注意,集合的pop方法无法设置参数,删除指定的元素
需要注意的是,集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。
在这里插入图片描述

可变类型与不可变类型

不可变类型
以int类型为例:i=5,实际上i+= 1并不是真的在原有的int对象上+1,而是重新创建一个value为6的int对象,i引用自这个新的对象
可变类型
以list为例。list在append之后,还是指向同个内存地址,因为list是可变类型,可以在原处修改。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值