元组
元组的简介
- 元组表现形式为tuple
- 我们可以通过()来创建一个元组
- 元组是一个不可变序列(一般当我们希望数据不可变时,我们使用元组,其他时候都用列表)
元组的使用
-
如果元组不是空元组,那么至少有一个‘,’,当元组不是空元组时括号可以省略
-
元组解包指将元祖中的每一个元素都赋值给一个变量
-
但是元组解包时的变量个数要与元组里面的元素个数相等(多或者少都不行)
-
如果希望将元组解包赋给少于元组内元素个数的变量,可以在变量前加*
-
*号在哪个变量前,多出来或者少的元素就会赋给哪个变量
字典
字典的简介
-
字典属于一种新的数据结构称为映射(mapping)
-
字典也称之为键值对(key-value)结构
-
每个字典中都可以有多个键值对,每个键值对我们称之为一项(item),但同一个key值只对应一个value,后面的value会覆盖前面的value
-
字典的类型为dic,创建字典的语法为:dic={key:value},还有一些其他方法,详情可以查看说明文件
-
字典与列表相反,不好存储数据,但好查询数据
-
key值就是每个元素唯一的名字,可以通过key值来查找元素
-
字典的值(value)可以是任意对象,字典的键可以是任意不可变对象(int、str、bool、tuple…)
字典的使用
- 与字典相关的函数
- dict()函数来创建字典
- len()获取字典里面的键值对的个数
- 与字典相关的方法
-
get(key[,defalut])根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值。
-
del d 删除字典中的key-value
-
clear()清空字典中所有元素
-
copy()复制字典中所有元素
- 注意:如果字典中还有个字典是不会进行复制的
从图中代码可以看出,当字典里面还包含有字典的时候,copy并不会复制里面的字典,当对里面的字典进行改动时,原字典也会发生变化,而使用deepcopy之后,才完全复制了一个新的子字典,而不是指向了同一个对象。
-
update()将其它字典的key-value添加到当前的字典当中
-
pop(key[,default])根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
-
popitem( )删除字典最后的一个key-value这个方式是有返回值,删除之后它会将删除的key-value作为返回值返回
- 还有一些其他的方法可以查看说明文件
遍历字典
- 我们主要可以通过3种方式对字典进行遍历
- keys()该方法返回字典所有的key
- values()该方法返回一个序列,序列中保存有字典的值
- items()该方法会返回字典中所有的项,它返回一个序列,序列中包含有双值子序列,双值分别是:字典中的key和value
- 我们可以通过keys方法加上for循环来遍历字典中的所有元素
- 通过items函数加上for可以遍历字典中所有的key-value键值对