列表类型的内置方法

1.用途:多个装备、多个爱好、多门课程,甚至是多个女朋友

2.定义:[]内可以有多个任意类型的值,逗号分隔元素

# my_girl_friend = list(['jason','tank','sean'])
my_girl_friend = ['jason', 'tank', 'sean']
print(f"my_girl_friend: {my_girl_friend}")----->my_girl_friend: ['jason', 'tank', 'sean']l = list('hello nick')
print(f"l: {l}")----->l: ['h', 'e', 'l', 'l', 'o', ' ', 'n', 'i', 'c', 'k']

3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)、其他操作(了解)三个部分。

1.1 优先掌握(*****)

1.按索引取值(正向取值+反向取值),即可存也可以取
2.切片(顾头不顾尾)
3.长度len
4.成员运算in和not in
5.追加append
6.删除del
7.循环

1.2 需要掌握(****)

1.insert
2.pop
3.remove
4.count
5.index
6.clear
7.copy
8.extend
9.reverse
10.sort

4.存一个值or多个值:多个值

5.有序or无序:有序

6.可变or不可变:可变数据类型

hobby_list = ['read', 'run', 'girl']
print(f'first:{id(hobby_list)}')
hobby_list[2] = ''
print(f'second:{id(hobby_list)}')----->first:4522187016second:4522187016

水导链接——列表类型内置方法

元组(tuple)类型内置方法(可以当作没学过元组,一般不用,了解即可)

一、元组类型内置方法(tuple)

元组是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。也因此元组可以被列表取代掉,所以元组相比较列表使用的很少。元组相比较列表的优点为:列表的值修改后,列表的结构将会发生改变,而元组只需要存储,因此列表在某种程度上而言需要占用更多的内存。但是目前工业上内存已经不是问题了,所以工业上元组一般不会使用。

1.用途:多个装备、多个爱好、多门课程,甚至是多个女朋友

2.定义:在()内可以有多个任意类型的值,逗号分隔元素

# my_girl_friend = tuple(('jason','tank','sean'))
my_girl_friend = ('jason', 'tank', 'sean')print(f"my_girl_friend: {my_girl_friend}")---->my_girl_friend: ('jason', 'tank', 'sean')name_str = ('egon')  # ()只是普通包含的意思
name_tuple = ('egon',)print(f"type(name_str): {type(name_str)}")
print(f"type(name_tuple): {type(name_tuple)}")---->type(name_str): <class 'str'>type(name_tuple): <class 'tuple'>

3.常用操作+内置方法:常用操作和内置方法:

1.1 优先掌握(*****)

1.索引取值
2.切片(顾头不顾尾,步长)
3.长度len
4.成员运算in和not in
5.循环
6.count
7.index

4.存一个值or多个值:多个值

5.有序or无序:有序

6.可变or不可变:不可变数据类型(值变id也变)

name_tuple = ('nick',)
print(f'first:{id(name_tuple)}')、---->first:4394454152

二、元组和列表的区别

列表可变的原因是:索引所对应的值的内存地址是可以改变的

元组不可变得原因是:索引所对应的值的内存地址是不可以改变的,或者反过来说,只要索引对应值的内存地址没有改变,那么元组是始终没有改变的。

t1 = (['a', 'b', 'c'], 'wc', 'office')print(f"id(t1[0]): {id(t1[0])}")
print(f"id(t1[1]): {id(t1[1])}")
print(f"id(t1[2]): {id(t1[2])}")t1[0][0] = 'A'
print(f"t1[0][0]: {t1[0][0]}")
print(f"id(t1[0]): {id(t1[0])}")
print(f"t1: {t1}")----->id(t1[0]): 4394709960id(t1[1]): 4374626968id(t1[2]): 4394453568t1[0][0]: Aid(t1[0]): 4394709960t1: (['A', 'b', 'c'], 'wc', 'office')

水导链接——元组类型内置方法

字典类型的内置方法(dict)

1.用途:存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

2.定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

dic = {'a': 1, 'b': 2}  # dic = dict({'a':1,'b':2})print(f"dic: {dic}")---->dic: {'a': 1, 'b': 2}dic = dict(a=1, b=2, c=3)print(f"dic: {dic}")---->dic: {'a': 1, 'b': 2, 'c': 3}dic = {1: 'a', 0: 'b'}print(f"dic[0]: {dic[0]}")  # 无法区分dic是列表,还是字典,并且key不再具有描述信息---->dic[0]: bdic = {[1,2]: 'a', 0: 'b'}  # 报错

3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。

1.1 优先掌握(*****)

1.按key存取值:可存可取
2.长度len
3.成员运算in和not in
4.删除del
5.键keys()、值values()、键值对items()
6.循环

1.2 需要掌握(****)

1.get
2.update
3.fromkeys
4.setdefault

4.存一个值or多个值:多个值,值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型

5.有序or无序:无序

6.可变or不可变:可变数据类型(值变id不变)

dic = {'a': 1, 'b': 2}
print(f'first:{id(dic)}')
dic['a'] = 3
print(f'second:{id(dic)}')---->first:4356627632second:4356627632

水导链接——字典类型内置方法

集合类型内置方法(set)

集合可以理解成一个集合体,学习Python的学生可以是一个集合体;学习Linux的学生可以是一个集合体。

1.用途:用于关系运算的集合体,由于集合内的元素无序且集合元素不可重复,因此集合可以去重,但是去重后的集合会打乱原来元素的顺序。

2.定义:{}内用逗号分隔开多个元素,每个元素必须是不可变类型。

s = {1, 2, 1, 'a'}  # s = set({1,2,'a'})print(f"s: {s}")---->s: {1, 2, 'a'}s = {1, 2, 1, 'a', 'c'}for i in s:print(i)---->12cas = set('hello')print(f"s: {s}")---->s: {'e', 'o', 'h', 'l'}

3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。

1.1 优先掌握(*****)

1.长度len
2,成员运算in和not in
3.|并集、union
4.&交集、intersection
5.-差集、difference
6.^对称差集、symmetric_difference
7.==
8.父集:>、>= 、issuperset
9.子集:<、<= 、issubset

1.2 需要掌握(****)

1.add
2.remove
3.difference_update
4.discard
5.isdisjoint

4.存一个值or多个值:多个值,且值为不可变类型。

5.有序or无序:无序

6.可变or不可变:可变数据类型(值变id不变)

s = {1, 2, 'a'}
print(f'first:{id(s)}')
s.add(3)
print(f'second:{id(s)}')---->first:4480523848second:4480523848

水导链接——集合类型内置方法

数据类型分类总结

一、按存值个数区分

二、按可变不可变区分

三、有序无序区分

四、按访问类型区分

五、六大数据类型内置方法

数字、字符串、列表、字典、集合、元组

水导链接——数据类型分类总结

深浅拷贝

总结

1浅拷贝
拷贝前后对象具有相同id。可变对象变化,拷贝后的对象也变化;不可变对象变化,拷贝后的对象不变化,因为不可变对象改变是新开辟一块内存空间进行存储。

'''l1-------浅拷贝------>l2
index   0--------->a<--------01--------->b<--------12--------->c<--------23--------->[1.2]<----3
'''

2深拷贝
原有列表无论怎么变化,新拷贝的列表都不变,因为重新开辟了一块内存空间进行存储。不可变对象有两个索引,可变对象就再开辟一块空间存相同的值进行索引。

'''l1-------深拷贝------>l2
index   0--------->a<--------01--------->b<--------12--------->c<--------23--------->[1.2]     3--------->[1,2]
'''

水导链接——深浅拷贝

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!