python各种小知识

一、三元表达式

简化步骤

  代码简单且只有一行,可以直接在冒号后面编写

 

三元表达式:

数据值1+ if 条件+else 数据值2
条件成立则使用数据值1,条件不成立则使用数据值2;

当结果是二选一的情况下,使用三元表达式较为简便;

不推荐多个三元表达式嵌套

二、各种生成式/表达式/推导式

1. 列表生成式

例:给列表中所有人名的后面加上_NB的后缀

    name_list = ['Alex', 'kevin', 'oscar', 'tony', 'jerry']

方法1:for循环

name_list = ['Alex', 'kevin', 'oscar', 'tony', 'jerry']
new_list = []
for name in name_list:
    new_list.append(name+'_NB')
print(new_list)    #['Alex_NB', 'kevin_NB', 'oscar_NB', 'tony_NB', 'jerry_NB']

 

方法2:列表生成式


简单情况:

new_list = [name + '_NB' for name in name_list]    # ['Alex_NB', 'kevin_NB', 'oscar_NB', 'tony_NB', 'jerry_NB']

复杂情况

new_list = [name + "_NB" for name in name_list if name == 'Alex']
print(new_list)

new_list = ['大佬' if name == 'Alex' else '小赤佬' for name in name_list if name != 'jack']
print(new_list)

 

 2. 字典生成式

例:把字符串s1 = 'hello world'拆分成单个的字符并加上编号

方法1:for 循环

s1 = 'hello world'
for i,j in enumerate(s1):    # 默认从0开始编号
    print(i,j)


s1 = 'hello world'
for i,j in enumerate(s1,start=100):    # 从100开始编号
    print(i,j)

方法2:字典生成式

d1 = {i: j for i, j in enumerate('hello')}
print(d1)

 3. 集合生成式

res = {i for i in 'hello'}
print(res)

注意:没有元组生成式

三、 匿名函数

没有名字的函数,需要使用关键字lambda,一般不单独使用,需要结合其他函数一起使用

语法结构:

        lambda 形参:返回值

例:求两个数的和

 

 

四、常见内置函数

1.map() 映射

 

2. max()\min()

 

 注意:字典使用max()和min()时,是将键转化成ASCII码之后进行比大小

 我们要拿到数值进行比较大小,可以使用匿名函数,最后返回的结果是最大的值所对应的键:

 或者自己定义一个函数,通过函数拿到健所对应的值,比较大小之后再返回最大值所对应的键

 3. reduce

    传多个值,返回一个值

    reduce在Python3.x  已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数

     

 

posted @ 2022-10-13 19:06  莫~慌  阅读(327)  评论(0编辑  收藏  举报