python中三目运算符:
如果有这样一个判断,值大于5返回True,否则返回False,代码如何写?
a= 3
if a>5:print(True)else:print(False)
有更简便的方法吗?三目运算符写法如下:
a= 3Trueif a>5 elseFalse
即满足条件的写在左边,不满足的写在右边
函数基础之不定长参数:在函数调用时,不清楚自己要传几个参数时,可以使用。具体如下:*args用法def func(*args):print(args)
func()#此时可以传多个参数,数字、字符串、列表、元组、集合。
**kwargs用法def func(**kwargs):print(kwargs)
func(a=1,b=2,c=3,d=4) #字典键值对传法
函数基础之常见内置函数:
dir(__builtins__)#展示python中已经存在的内置函数。
print(dir(__builtins__))
常用的如下:
len()求长度
li= [1,4,3,2,5,6]print(len(li))
max()求最大值print(max(li))
min()求最小值print(min(li))
sum()求和print(sum(li))
sorted()排序print(sorted(li))
reversed()反向排序print(reversed(li)) #注意不可以这样写,这个地方有点不同,这样写的话输出的是一个对象。
print(list(reversed(li))) #应该这样写
注意内置函数和方法不一样,其实可以发现使用列表方法上面的正向排序、反向排序是这样写的:
列表永久性排序方法:sort()
li= [1,4,3,2,5,6]
li.sort()print(li)
结果:[1,2,3,4,5,6]
列表反向排序:sorted(reversed=True)
li= [1,4,3,2,5,6]
li.sort(reverse=True)print(li)
结果:[6,5,4,3,2,1]
进制转换函数:
bin() 转换为二进制
oct() 转换为八进制
hex() 转换为十六进制
ord() 转换为ASCII码
chr() ASCII码转字符
python高级内置函数:
enumerate 返回一个可以枚举的对象
li= ["a","b","c","d"]
enumerate(li)print(enumerate(li)) #输出结果为对象,用list接收如下:
print(list(enumerate(li))) #输出结果为:[(0,"a"),(1,"b"),(2,"c"),(3,"d")]
必须是列表吗?没有这种说法也可以是字典等,字典如下:print(dict(enumerate(li))) #输出结果为:{0:"a",1:"b",2:"c",3:"d"}
eval 取出字符串中的内容,用来执行一个字符串表达式,并返回表达式的值。
a= "1+2+3+4"eval(a)print(eval(a)) #结果为10
exec不作介绍
filter():过滤器接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,
filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
li= [1,2,3,15,16,20]deffunc(x):return x>10filter(func,li)print(list(filter(func,li))) #结果为[15, 16, 20]
map():接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
li= [1,2,3,5]deffunc(n):return n*10map(func,li)print(list(map(func,li))) #结果为[10,20,30,50]
zip():将两个列表组合。。。。
li1= [1,2,3,4,5]
li2= ["a","b","c","d","e"]
zip(li1,li2)
dict(zip(li1,li2))#用字典接收
print(dict(zip(li1,li2))) #结果为:{1:"a",2:"b",3:"c",4:"d",5:"e"}