1.元组
1>介绍,Python序列之一,与列表相似,但元素不可变(不可增删改)
2>声明方法
tup1=(1,2,3);
3>修改
tup1[0]=2 #非法,报错
4>删除
del tup1[0]
#TypeError: 'tuple' object doesn't support item deletion
del tup1
#可以删除整个元组引用
5>内置函数
tuple(seq) 将列表转化为元组
2.字典
1>介绍:同Java的Map,以键值对存储数据
注:键是唯一的,且类型必须为不可变数据类型
2>声明方法:dic1={key1:value1,key2:value2}
3>访问(通过键)
dic1={'name':'张三','age':18}
print(dic1['name'])
4>修改
dic1['name']='李四'
5>内置函数
print(dic1.copy())#复制列表
print(dic1.fromkeys(('name','age'),10)) #key为序列的各个元素,值为10
print(dic1.get('ss')) #获取key为name的值,键不存在,返回None
print(dic1.keys()) #获取所有的key
print(dic1.values()) #获取所有的value
print(dic1.items()) #获取集合所有的元组数组
dic1.popitem() #删除末尾键值对
dic1.setdefault("gender",1)#添加键值对,值不给默认为None
dic2={}
dic2.update(dic1) #将dic1的值更新到dic2中
print(dic1,dic2)
3.集合
1>介绍:无序,唯一的序列
2>声明: set([1,2,3]) 或{1,2,3}
注:set() 为空集合,{}代表空字典
3>
set1=set([1,2,3,4])
set2={3,4,5,6}
print(set1.union(set2)) #并集
print(set1.intersection(set2)) #交集
print(set1.difference(set2)) #差集
print(set1.symmetric_difference(set2)) #对称差集
#另一种写法
print(set1|set2) #并集
print(set1&set2) #交集
print(set1-set2) #差集
print(set1^set2) #对称差集
4.函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
1>语法:
def 函数名(参数列表):
函数体
return XXX
2>参数类型:
def calc(x,y=None,*numbers,*,city,job,**kw):
print(numbers)
x 必需参数 必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
y 默认参数 调用函数时,如果没有传递参数,则会使用默认参数
*args 不定长参数 可以传0或任意个参数
**kw 关键字参数 可以传0或任意个带参数名的参数
city、job 命名关键字参数 限制参数名的关键字参数,只接收city和job作为关键字参数
def person(name, age, *, city, job):
print(name, age, city, job)
#和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数
3>参数传递
Python都是对象的引用,所以不分值传递和引用传递,根据参数类型可变和不可变。
可变类型:fun(la) la值发生改变
不可变类型:fun(a) a值不发生改变
4>匿名函数 lambda
语法:
lambda [arg1 [,arg2,.....argn]]:expression
a= lambda a,b:a+b
print(a(1,2))