python——函数 20、三元表达式、列表推导式、生成器表达式

1、三元表达式

# 什么是三元表达式 三元:三个元素

x=1
y=2
if x>y:
    print(x)
else :
    print(y)

# 变为三元表达式:
hhh=x if x>y else y
print(hhh)
# 简单明了
————————————————————————————————————
def max2(x,y):
    if x>y:
        return x
    else :
        return y
print(max2(1,5))

#     变为三元表达式:
def max2(x,y):
    return x if x>y else y
print(max2(1,5))
# 可看出 三元表达式就可以用一行输出该结果   很简单!!!!

2、列表推导式

l=[1,25,35,60,85,96]
l_new=[]
l_new2=[]
for i in l:
    if i >50:
        l_new.append(i)
    else:
        l_new2.append(i)
print(l_new)
print(l_new2)

#变为列表推导式
l=[1,25,35,60,85,96]
x=[i for i in l if i < 50]
y=[i for i in l if i < 50]
print(y)
print(x)

3、生成器表达式

#将列表的 []换为()就是生成器表达式
x=(i for i in range(100))
print(x.__next__())
print(x.__next__())
print(next(x))
#可以看出 x.__next__()=next(x)

这三个表达式 可以看出的作用就是使代码更工整 简洁 方便

原文地址:https://www.cnblogs.com/StevenSunYiwen/p/9370723.html

时间: 2024-10-19 20:50:43

python——函数 20、三元表达式、列表推导式、生成器表达式的相关文章

python基础-三元表达式/列表推导式/生成器表达式

1.三元表达式:如果成立返回if前的内容,如果不成立返回else的内容 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式:l=['egg'+str(i) for i in range(1,11)] print(l) 3.生成器表达式: l=('egg'+str(i) for i in range(1,11) if i >6) for i in l: print(i) 原文地址:http

三元表达式 列表推导式 生成器表达式

# 三元表达式# def my_max(x,y):# if x >= y:# return x# else:# return y## res=my_max(1,2)# print(res) # 2 # x=10# y=20# res=x if x >= y else y## print(res) # 20 # name=input('>>:name').strip()# res='Yes' if name == 'OBOS' else 'No'## print(res) # 列表推

(列表推导式,生成器表达式,内置函数)

一,列表生成式 示例一: 生成1~100的列表 生成1-100的列表 1 2 3 4 5 li = [] for i in range(1,101):     li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期~11期li = []for i in range(1,12): li.append('python{}期'.format(i))print(li) 执行输出: ['python1期', 'python2期', 'python3期'...]

列表推导式----生成器表达式

列表推导式: 基本形式: [表达式  for  参数  in  可迭代对象]   或者 [表达式  for  参数  in  可迭代对象  if   条件] 实例: 1 l = [] 2 for i in range(100): 3 l.append('egg%s' %i) 4 print i 5 6 #不带if条件 7 l = ['agg%s' %i for i in range(100) ] 8 9 #带if条件 10 l = ['agg%s' %i for i in range(100)

三元表达式,列表推导式和字典生成式

三元表达式 dog_name='crazy_dog' if dog_name=='crazy dog': print('疯狗') else: print('溜了') #通过三元表达式,我们可以缩减为以下代码 dog_name='crazy_dog' print('疯狗')if dog_name=='crazy_dog' else print('溜了') #三元表达式只支持双分支结构 条件成立时的返回值 if 条件 else 条件不成立时的返回值 列表推导式 lt=[] for i in rang

Python学习笔记2:构造序列:列表推导和生成器表达式

欢迎访问个人网站:www.comingnext.cn 1. 关于Python内置序列类型 a. 按能否存放不同类型的数据区分 容器序列: list.tuple 和collections.deque这些序列能存放不同类型的数据 扁平序列: str.bytes.bytearray.memoryview和array.array,这类序列只能容纳一种类型. b. 按能否被修改来分类 可变序列: list.bytearray.array.array.collections.deque 和 memoryvi

Python的高级特性2:列表推导式和生成器

一.列表推导式 1.列表推导式是颇具python风格的一种写法.这种写法除了高效,也更简短. In [23]: ['i:el' for i,el in enumerate(["one","two","three"])] Out[23]: ['i:el', 'i:el', 'i:el'] enumerate是内建函数,可以让列表获得“下标”的属性.而如果不用列表推导式,上例需要这么写 In [24]: lst = ["one",

python之列表推导和生成器表达式

首先来看一下代码: chars = "abcd" tmp = [] for char in chars: tmp.append(ord(char)) print(tmp) 这是一般的写法,将字符串中的每一个字符转换称ASCII码,然后存进一个tmp数组. 利用列表推导的方式: tmp = [ord(char) for char in chars] 输出:[97,98,99,100] 列表推导中也可以使用if和else. 当只有一个if时: chars = "abcd"

Python基础第九天——迭代对象、 迭代器对象、生成器、三元表达式列表解析、生成器表达式

鸡汤: 要时刻不断地给自己灌输一种思想:都TMD是个人,凭什么他会而我就不会?王候将相宁有种乎?我承认人有天赋的差别,但是勤奋能弥补缺陷!所以,根据以上观点得出以下结论,只要出生时不是个傻子,那么就没有蠢的人,只有懒的猪!只要勤奋上进,小白也会变大神.加油 --奔跑吧小白 一.迭代对象.迭代器对象 1.迭代 定义:带有__iter__方法的就是可迭代对象 python常用的数据类型中,除了数字外,都是迭代对象. 例:用isinstance判断python常用数据类型是否为迭代对象,经验证,pyt

python(列表推导式和生成器表达式)

从母鸡下蛋的故事讲起 1 老母鸡 = ('鸡蛋%s'%i for i in range(10)) 2 print(老母鸡) 3 for 蛋 in 老母鸡: 4 print(蛋) 5 g = (i*i for i in range(10)) 6 for i in g: 7 print(i) ①把列表解析的[]换成()得到的就是生成器表达式 ②列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更加节省内存空间 ③Python不但使用迭代器协议,让for循环变得更加通用.大部分内置函数,