函数 三元表达式 列表生成式 字典生成式 生成器表达式

1、三元表达式

针对 if  条件判断的简写

可以比较下比如:

def max2(x,y):
    if x > y:
        return x
    else:
        return y
max2(20,30)
=================================================
x=10
y=20
res=x if x > y else y
print(res)

真正的核心代码从4条变成了一条就可以解决了

代码形式:条件成立时的返回值    if 条件    else 条件不成立时的返回值



2、 列表生成式

也是简写代码的一种

咱们按照上面的套路举例

names=[‘jxx‘,‘yxx‘,‘cxx‘]
#这是咱们之前学过的知识运用
l=[]
for name in names:
    if name != ‘yxx‘:
        l.append(name + ‘SB‘)
names=l
#列表生成式
names=[name+‘SB‘ for name in names if name != ‘yxx‘]
print(names)

代码形式: [  所要执行的代码  左边   for 循环 右边  if 判断]



3、字典生成器

在说字典解释器之前我先介绍下一个函数

zip()称之为拉链函数  故名思意 就是把两个元素  链在一起

s1=‘hello‘
l1=[1,2,3,4,5]

res=zip(s1,l1)
#而res在python3中不是一个值而是一个迭代器对象
print(res)
print(list(res))
生成的是
[(‘h‘, 1), (‘e‘, 2), (‘l‘, 3), (‘l‘, 4), (‘o‘, 5)]

接下来我们来演示字典生成器

keys=[‘name‘,‘age‘,‘sex‘]
values=[‘egon‘,18,‘male‘]
#常规的代码
d={}
for k,v in zip(keys,values):
    d[k]=v
print(d)
#字典生成器的代码
d={k:v for k,v in zip(keys,values)}
print(d)

显示的是
{‘name‘: ‘egon‘, ‘age‘: 18, ‘sex‘: ‘male‘}

4、生成器表达式

本身就是迭代器

l=[‘egg%s‘ %i for i in range(100)]
 print(l)
这个会直接把值全部打印出来 如果数据过大 会导致内存吃不消

g=(‘egg%s‘ %i for i in range(1000000000000))
print(g)#迭代器对象
print(next(g))
print(next(g))
一个一个取出来

原文地址:https://www.cnblogs.com/zuozhengjun/p/9178884.html

时间: 2024-09-29 01:21:55

函数 三元表达式 列表生成式 字典生成式 生成器表达式的相关文章

三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

一 三元表达式.列表推导式.生成器表达式 1.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式 #1.示例 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i for i in range(10)] #2.语法 [expression for item1 in iterabl

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

Python3 三元表达式.列表推导式.生成器表达式 三元表达式 表达式中,有三个元素 name = input("请输入姓名: ")ret = '输入正确' if name == 'aaa' else '输入错误'print(ret)  列表推导式 #1.示例# 方法1egg_list1 = []for i in range(10): egg_list1.append('鸡蛋%s' % i)print(egg_list1) #方法2egg_list2 = ['鸡蛋%s' %i for

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

一 三元表达式 二 列表推导式 三 生成器表达式 一 三元表达式 1 name=input('姓名>>: ') 2 res='abc' if name == 'lucy' else 'jack' 3 print(res) 二 列表推导式 #1.示例 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i for i in range(10)] #2.语法 [expression for ite

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

一.列表推导式.生成器表达式: # li = []# for i in range(1,101):# li.append(i)# print(li) #l1 = [python1期,python2期,python3期.....]# l1 = []# for i in range(1,12):# l1.append('python%s期' % i)# print(l1)#一行搞定,列表推导式:用列表推导式能够构建的任何列表,用别的都可以构建.#一行,简单,感觉高端.但是,不易排错.# li = [

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

# 列表推导式 lis = [i for i in range(10)] print(lis) # 生成器表达式 crt = (i for i in range(10)) print(crt) print(crt.__next__()) print(crt.__next__()) print(crt.__next__()) #打印: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <generator object <genexpr> at 0x00000188F0FED9

三元表达式,列表生成式,字典生成式,生成器表达式

三元表达式 条件成立时的返回值 if 条件 else 条件不成立时的返回值 def max2(x,y): if x > y: return x else: return y print(max2(10,20)) x=10 y=20 res=x if x > y else y print(res) 列表生成式 #输出1~10中每个数字的平方l=[item**2 for item in range(1,11)] print(l) names=['alex','wxx','lxx'] 为列表中每个人

递归/匿名函数/三元表达式/列表生成式/字典生成式/二分算法

让在下揭开尔等的面纱,一探究竟:) >>>递归: 递归是一个往复的过程,也就是由两个过程组成,一个是计算过程,一个是将值层层返回的过程,递归的奇妙之处,就在于自身调用自身,然后,过程遵循由复杂到简单,最终满足相应条件后,退出,返回结果.说了一大堆,不过直接上代码: test_list = [1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,]]]]]]]]]]]]]] res = 0 def sum_list(test_list, res): f

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): r

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

一.三元表达式的使用 name = 'alex' age = 20 if name == 'alex' else 22 print(age) 二.列表推导式(声明式编程) l = ['alex%s' %i for i in range(10) if i > 5] print(l) 三.生成器表达式 ball = ('球%s' %i for i in range(10)) print(ball) print(next(ball)) print(list(ball)) 原文地址:https://ww