Python之一行代码

枫铃3年前 (2021-09-30)Python217

一、三元表达式

# 三元表达式只支持双分支结构

x,y = 10,20
print(x if x>5 else y)
# 满足if后面的条件返回x,否则返回y

二、列表推导式

# 创建0~9的列表

# 1.for循环方式
lt = []
for i in range(10):
    lt.append(i)
print(lt)

# 2.列表推导式
lt = [i for i in range(10)]
print(lt)

三、字典生成式

# 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
# 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
# 字典生成式一般与zip(拉链函数-->列表里面包了元组)连用
z = zip(['a', 'b', 'c', 'd'], [1, 2, 3, 4])  # 压缩方法,Python解释器的内置方法

# 字典生成式
dic = {k: v for k, v in z}
print(dic)

四、生成器

生成器:自定义迭代器,生成器就是迭代器(自己造出来的)

'''
 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def func():
    yield 123  # yield会使函数func()变成生成器对象,因此它具有__iter__方法
    print(456)  # yield会停止函数,当运行运行下一次next才会继续运行下面的代码
    yield 789  # 一个yield对应一个next

f = func()  # 生成器
print(f)  # <generator object func at 0x000001F0E44237D8>
f_iter = f.__iter__()
print(f_iter.__next__())
print(f_iter.__next__())
print(f_iter.__next__())

# yield的三个特性
# 1.yield可以把函数变成生成器(自定制的迭代器对象,具有__iter__和__next__方法)
# 2.yield可以停止函数,在下一次next时再运行yield下面的代码
# 3.有n个yield生成器就有n个元素,就可以next n次,第n+1次next会报错

# return的特性
# 1.返回值
# 2.终止函数

# 用生成器自定义range函数
def range(*args, step=1):
    args = list(args)
    if len(args) == 1:
        count = 0
        while count < args[0]:
            yield count
            count += step
    elif len(args) == 2:
        while args[0] < args[1]:
            yield args[0]
            args[0] += step
    elif len(args) == 3:
        step = args[2]
        while args[0] < args[1]:
            yield args[0]
            args[0] += step

五、匿名函数

# def 函数名 ---> 有名函数
# 匿名函数 ---> 没有名字

# 匿名函数一般不单独使用,和filter()/map()/sorted()/列表的sort()内置方法联用
salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000
}
salary_list = list(salary_dict.items())
print(salary_list)  # [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]

salary_list.sort(key=lambda i: i[1])  # 内置方法是对原值排序

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。