python基础+元组与字典的详细讲解

元组与字典

  • 元组
    • 一.**概念:**
    • 二.元组的定义
      • 1.元组的特殊定义写法
      • 2.元组的扩容和拷贝
      • 3.列表与元组的区别
      • 4.元组的切片
      • 5.元组推导式
    • 三.元组关于内存的问题
  • 字典
    • 一.字典的定义
    • 二.字典的创建
    • 三.字典的增删改查
      • 1.增和改
      • 2.字典的删除操作
      • 3.字典的查找操作
    • 四.字典推导式
    • 五.总结

元组

一.概念:

不可变的序列,用()来创建表示,支持下标,支持切片操作
元组的数量大小是固定的,占用空间更小所以一般用来当作记录的数据类型,比如日志文件.log

二.元组的定义

python基础+元组与字典的详细讲解_第1张图片
可以看到第一种定义元组的方式,他最终的数据类型数int,那么在我们定义的元组中只有一个元素时,我们需要在元素后面加上一个逗号
python基础+元组与字典的详细讲解_第2张图片

1.元组的特殊定义写法

python基础+元组与字典的详细讲解_第3张图片

2.元组的扩容和拷贝

python基础+元组与字典的详细讲解_第4张图片

3.列表与元组的区别

元组是一个不可变的有序序列,所以元组就不可以使用列表的那些append,extern,insert,pop,remove等等操作也不能进行修改操作仅可用count和index方法.

4.元组的切片

python基础+元组与字典的详细讲解_第5张图片
这个跟列表是一样的

5.元组推导式

python基础+元组与字典的详细讲解_第6张图片
在这里可以看到元组的推导式式出现了一个生成器,如果想要看到元组本身元素的话,可以直接通过强制类型转换就好了

三.元组关于内存的问题

python基础+元组与字典的详细讲解_第7张图片

当元组中嵌套了列表时,我们通过索引的方式对元组里面的可变元素进行修改的,如果是对元组进行深拷贝copy.deepcopy(),那么就不能再通过索引的方式对元组的任何元素进行修改操作,因为这些可变元素类型,都会在内存中有属于自己的空间,那么深拷贝就是会给那些可变元素开辟一个新的空间进行数据存放

字典

一.字典的定义

字典是由键(key)值(value)对组成的,类似于json数据类型,利用的效率很高,字典的键是不可以重复的,如果重复的话后面的键值对将会覆盖前面的内容,它们是一对一的映射关系,每条记录都是无序的,所以我们不可以通过索引的方式去访问字典

二.字典的创建

方法一: dict_1 = {“name”:杨戬,“age”:16}
方法二dict_2 = dict([[“name”:杨戬],[“age” : 15]])
方法三: dict_3 = dict(zip((“name”,“杨戬”),(“age” , 15)))

三.字典的增删改查

1.增和改

1,fromkeys用来列表转字典的key,这种生成的字典,它的value值是None
python基础+元组与字典的详细讲解_第8张图片
2.updata(传入字典)
将两个字典合并,将另一个字典的键值对依次放到字典的后面
python基础+元组与字典的详细讲解_第9张图片
3.利用字典[''key]=value的格式进行插入键值对,如果插入的键存在的就会更新这个键值对的value的值,当然这也是一种修改value值的方法
python基础+元组与字典的详细讲解_第10张图片

2.字典的删除操作

有pop(key)和popitem()
python基础+元组与字典的详细讲解_第11张图片

通过以上代码运行结果可以看出,pop()是通过字典的key值去删除指定的键值对
popitem()它是直接默认删除字典的栈顶的那个键值对

3.字典的查找操作

1.查找字典中的所有key值利用.keys()

python基础+元组与字典的详细讲解_第12张图片
2.通过key值找到对应的value值get(key)
python基础+元组与字典的详细讲解_第13张图片
3.获取字典里面的所有键值对items(字典)
python基础+元组与字典的详细讲解_第14张图片
4.获取字典里面的所有value值(字典.values())
python基础+元组与字典的详细讲解_第15张图片
5.清空字典所有元素
python基础+元组与字典的详细讲解_第16张图片

四.字典推导式

python基础+元组与字典的详细讲解_第17张图片
其实这里是通过.items()方法,然后把字典的每一对键值对都弄成一个元组,进而利用元组的特殊写法达到的推导式遍历的效果

五.总结

元组是一个不可变的有序序列,不能对它的内部元素直接进行修改,除非元组内部元素存在可变元素,那么可以改变元组内部可变元素的子元素,然而字典和元组恰恰相反,字典是一个可变而无序的,可以对它进行一系列的增删改查的操作,但是不能通过索引的方式依次去访问字典的各个元素

你可能感兴趣的:(python基础,python,开发语言,java)