python中三目运算符:
如果有这样一个判断,值大于5返回True,否则返回False,代码如何写?
a = 3
if a>5:
print(True)
else:
print(False)
有更简便的方法吗?三目运算符写法如下:
a = 3
True if a>5 else False
即满足条件的写在左边,不满足的写在右边
函数基础之不定长参数:在函数调用时,不清楚自己要传几个参数时,可以使用。具体如下:
*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]
def func(x):
return x>10
filter(func,li)
print(list(filter(func,li))) #结果为[15, 16, 20]
map():接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
li = [1,2,3,5]
def func(n):
return n*10
map(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"}