python元组、字典、集合等~
1.元组 tuple
元组是不可改变的序列,同list一样,元组可以存放任意类型的元素
元组一但创建将不可改变
type(x)函数 可以返回对象x的类型
元组的运算:
+ 用于拼接方式创建一个新的元组
* 用于生成新的重复的元组
元组的比较运算、in /not in 运算符、索引、切片,规则与列表的规则完全相同
但是元组不支持索引赋值、切片赋值,元组的切片返回一个新的元组
2.字典 dict
字典是一种可变的容器,可以无序的存储任意类型的以键-值对形式存在的数据,
字典的键不能重复,字典的键会自动去重,且只能用不可变类型作为字典的键
字典是可迭代对象,字典只能对键进行访问
字典和列表比较:
1.都是容器,都是可变对象
2.索引方式不同
3.字典的插入,删除,修改的速度可能会比列表快(重要)
4.列表的存储是有序的,字典的存储室无序的
用于字典和集合的函数:
len(x),max(x),min(x),sum(x),any(x),all(x)
reversed(x) 返回反向顺序的可迭代对象
3.集合 set
集合是可变的容器
集合内的数据对象都是唯一的(不能重复多次的)
集合是无序的存储结构,集合中的数据没有先后关系
集合内的元素必须是不可变对象
集合是可迭代对象
集合是相当于只有键没有值的字典(键则是集合的数据)
列表不能放在集合里,集合也不能放在集合里
集合是可迭代对象,可以用于for语句中
固定集合 frozenset
固定集合是不可变的,无序的,含有唯一元素的集合
容器类小结:
字符串 str
列表 list
元组 tuple
字典 dict
集合 set
固定集合 frozenset
4.函数
函数用于封装语句块,提高代码的重用性
def 语句:
语法:
def 函数名(形参列表): #形参列表没用的时候可以为空
语句块(代码块)
函数调用是一个表达式
如果函数内部没有return语句,则函数执行完毕后返回None对象
4.return
return 语句:用于函数中结束当前函数的执行,返回到调用该函数
的地方,同时返回一个对象的引用关系
5.函数的形参
接受调用者传递过来的数据
函数的形参的四种定义方式
位置形式
星号元组形参 *args
命名关键字形参 *, *args 之后
强制所有的参数都必须用关键字传参或字典关键字传参
双星号字典形参 **kwargs 绑定的是一个字典
函数的参数说明:
位置形参,缺省参数,星号元组形参,双星号字典形参等可以混合使用
函数参数自左至右的顺序为:
1.位置形参
2.星号元组形参
3.命名关键字形参
4.双星号字典形参
6.全局变量和局部变量
1.局部变量只能在其被声明的函数内部访问,而全局变量可以
在整个模块范围内访问
2.在函数内部赋值语句不会对全局变量造成影响
7.globals() / locals函数
globals() 返回当前全局作用域内变量的字典
locals() 返回当前局部作用域内变量的字典
8.函数变量:(重要)
1.函数名是变量,它在创建函数时绑定一个函数
2.一个函数可以作为另一个函数的实参传递
3.函数可以返回另一个函数
9.函数的嵌套定义
函数嵌套定义是指一个函数里用 def语句来创建另一个函数的情况
变量名查找规则:
在访问变量时,先查找本地变量,然后是包裹此函数外部的函
数内的变量,之后是全局变量,最后是内建作用域内的变量
在默认情况下,变量名赋值会在当前作用域内创建变量和修改变量
只能读取Builtin内建函数作用域的变量 不能修改
global 声明一个变量是在全局作用域内
nonlocal 语句声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量
创建函数可以使用def语句、lambda
lambda 只是一个表达式,它用来创建一个函数
当lambda 表达式调用时,先执行冒号(:)后的
表达式,并返回表达式的结果的引用
lambda 表达式创建的函数只能包含一条表达式
lambda比函数简单且可以随时创建和销毁,有利
于减少程序的耦合度
eval() 函数:拿到的字符串可以当成表达式执行(前提字符串是表达式)
exec() 函数:拿到的字符串可以当成是程序执行(前提是字符串是程序)
python---元组tuple、字典dict、集合set等
最新推荐文章于 2024-09-12 20:06:16 发布