python字典 增,删,改,查
1、增:XXX[新的key] = value
2、删:DEL XXX[key]
3、改:XXX[已经存在的key] = NewValue
4、查:aList.extend(bList)
python中定义全局变量命名, 格式:g_变量名 = value
函数中使用全局变量先使用 "global 变量名"
使用main函数思想控制整个程序
使用id(变量名),查看变量的内存地址
python不同于其它语言,所以赋值都是引用。
python函数中的缺省参数
def test(a,b=22):
result = a+b
print(result)
return result test(10)
# print : 32 ,给B设置的缺省参数为22,如果不传就用22,传了值就以传的值为准。
test(a=10,b=20) #指定参数传值
python函数不定长参数 1
def test(a,b,*args):
print(a)
print(b)
print(args)
test(10,20,30,40,50,60)
# 如果不确定传参数量,在形参里用*args(可自定义形参名且必须放在形参最后的位置),args里返回的是一个元组。(如果元组只有一个值,"(10,)",需要在单值后加逗号)
python函数不定长参数 2
def test(a,b,*args,**kwargs):
print (a)
print (b)
print (args)
print (kwargs)
test(10,20,30,40,50,name="laowang",hobby="green")
#**kwargs以字典的形式保存多余的参数name和hobby。*args还是以元组的形式保存多余的不带变量的具体值->(实参所传的参数)
返回结果:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
拆包
嘿嘿
什么是拆包?
a = ['cute','doge','hehe'] #要传的一个列表
b = {'name':'caiquan','look':'shazi'} #要传的一个字典
def test(a,b,*args,**kwargs):
print (a)
print (b)
print (args)
print (kwargs)
#NOW 我们把列表和字典当作实参传入test函数并打印
test(10,20,30,a,b)
先look一下结果
很明显多余的参数 -> a列表和b字典 <- 都被装在了*args元组里面而**wkargs是空,这时在函数内如果要取出字典里的值是不太方便的。
这里只需要在传实参a和b时,加上* 和 **。
a = ['cute','doge','hehe'] #要传的一个列表
b = {'name':'caiquan','look':'shazi'} #要传的一个字典
def test(a,b,*args,**kwargs):
print (a)
print (b)
print (args)
print (kwargs)
#NOW 我们把列表和字典当作实参传入test函数并打印
test(10,20,30,*a,**b)
现在多余的实参30, 列表a被拆分到形参args里,字典b被拆分到形参kwargs里。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
python可变与不可变类型
1,不可变类型
字符串,数字,元组
2,可变类型
列表,字典
字典中只能使用不可变类型作为key
test = {"name":"laowang",234:"num",(10,20):"test"}
print test # {234: 'num', 'name': 'laowang', (10, 20): 'test'}
如果使用可变类型作为key是不行的!!!
列表的排序方法
aa = [10,324,25,24,52,2,52,4352,325,235]
# aa.sort() 从小到大排序
# aa.sort(reverse=True) 从大到小排序
aa.reverse() 倒序
print(aa)
#[235, 325, 4352, 52, 2, 52, 24, 25, 324, 10] #当列表中是字典的时候
aa = [{"name":"laowang","age":19},{"name":"xiaowang","age":17},{"name":"any","age":28}]
aa.sort(key=lambda x:x["name"])
print(aa)
#按字母顺序排列
#[{'age': 28, 'name': 'any'}, {'age': 19, 'name': 'laowang'}, {'age': 17, 'name': 'xiaowang'}]