1.三元表达式条件成立时的返回值 if 条件 else 条件不成立时的返回值三元表达式的意义就是让一些简单的if判断写成一行,减少代码量

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

2.列表生成式l=[item**2 for item in range(1,11)]print(l)print(next(iter(l)))  # 两次都是输出1print(next(iter(l)))  # 因为重新生成了一次对象res = l.__iter__()print(next(res))  1print(next(res))  4print(next(res))  9

names=['alex','wxx','lxx']

l=[]for name in names:    l.append(name + 'SB')names=l

names=[name+'SB' for name in names]print(names)

names=['alex','wxx','egon','lxx','zhangmingyan']l=[]for name in names:    if name != 'egon':        l.append(name + 'SB')names=lnames=[name+'SB' for name in names if name != 'egon']print(names)

列表推导式l=[item**2 for item in range(1,5) if item > 2]print(l)

names=['egon','alex_sb','wupeiqi','yuanhao']names=[name.upper() for name in names]print(names)names=['egon','alex_sb','wupeiqi','yuanhao']

nums=[len(name) for name in names if not name.endswith('sb')]print(nums)

字典生成式zip() 拉链函数  两个可迭代对象之间一一匹配,如果有一个对象比较长,短的匹配完了就停止匹配。匹配后的结果以元组形式返回。字典通过items后得到的值和拉链函数对两个可迭代对象进行匹配得到的值都是元组形式。通过变量解压可以对元组解压。for k,v in dict.items() == for k,v in zip(s1,l)s1='hellopo'l1=[1,2,3,4,5,6,7]

res=zip(s1,l1) # <zip object at 0x0000019B07AFA8C8>  <<---res               # [('h', 1), ('e', 2), ('l', 3), ('l', 4), ('o', 5), ('p', 6), ('o', 7)]print(res)print(list(res))

keys=['name','age','sex']values=['egon',18,'male']

res=zip(keys,values)print(type(res))  # <class "zip">print(list(res))  # [('name', 'egon'), ('age', 18), ('sex', 'male')]print(list(res)) # [ ]d={}for item in zip(keys,values):    print(item)  # 通过变量解压操作  k,v = itemfor k,v in zip(keys,values):    d[k]=vprint(d){'name': 'egon', 'age': 18, 'sex': 'male'}

keys=['name','age','sex']values=['egon',18,'male']d={k:v for k,v in zip(keys,values)}print(d)

info={'name': 'egon', 'age': 18, 'sex': 'male'}

keys=info.keys()print(keys)iter_keys=keys.__iter__()values=info.values()print(values)

d={k:v for k,v in zip(keys,values)}print(d)

s={i for i in range(10)}print(s,type(s))  # set

生成器表达式g=(i for i in range(10))# print(g)

print(next(g))print(next(g))

nums=[11,22,33,44,55]print(max(nums))

with open(r'C:\Users\LENOVO\PycharmProjects\untitled2\a.txt',encoding='utf-8') as f:    nums=(len(line) for line in f)  # 生成器    print(next(nums))    print(next(nums))    print(next(nums))    # print(type(nums))    # print(max(nums))    # print(type(max))# 内置方法 max(nums)和for循环,list相似,max依次取值比较大小,返回较大的,再取值进行比较print(nums)  # nums在外部仍是存在的print(max(nums))  # 会抛出异常是因为文件已经关闭了,生成器无法取值print(max(nums))

nums是一个生成器,即使文件关闭,nums依然以生成器的形式存在。在文件中调用max方法,max方法会自动执行next操作

列表表达式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/Roc-Atlantis/p/9178751.html

列表,字典表达式以及三元表达式相关推荐

  1. python之三元表达式嵌套三元表达式解析

    python的三元表达式相信学过python的朋友都会.但是大部分学python的朋友不知道的是三元表达式还可以嵌套三元表达式. 请看代码案例: cmp = lambda a, b: 0 if a = ...

  2. python列表生成式原理_三元表达式/和/或如何在Python中工作/真与假的性质/列表生成/生成器,and,or,执行,原理,True,False,本质,生成式...

    一看标题,看似是三个不相关的问题,实际上息息相关. 我们都知道,"C系语言(C\C++.C#.Java等)"都有一个共同的知识点:三目运算符,其主要作用还是为了简化选择结构语句.让 ...

  3. python 三元表达式_Python三元表达式

    我们知道Python没有三元表达式,但是我们通过技巧达到三元表达式的效果. 摘自<Dive Into Python>: 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的 ...

  4. 【python】python的二元表达式和三元表达式

    二元表达式 x,y=4,3 if x>y: s = y else: s= x print s   x if x<y else y 三元表达式: >>> def f(x,y ...

  5. java的三项表达式_Java三元表达式中的陷阱

    今天遇到一个奇怪的Java三元表达式中的空指针异常.特此记录. 代码 代码示意如下: Integer itemVO = null;Integer globleLatenessToleranceUseA ...

  6. js问号表达式(三元表达式)

    表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3. ========== ...

  7. python三元表达式求值_python 三元表达式的 列表推导式 生成器推导式

    python中三元表达式的语法如下 ===if else result = x if condition else y 另外一种三元表达式,比较少见 result = (x, y)[condition ...

  8. 三元表达式列表解析生成器表达式

    三元表达式 列表解析 生成器表达式 三元表达式 在作简单的判断时,三元表达式能简化代码: def max(x, y):if x > y:return xelse:return y # 这个函数可 ...

  9. js“三元表达式” (三元运算符)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liu_jiachen/article/ ...

最新文章

  1. 方法区如何判断是否需要回收
  2. Effective Java:对于所有对象都通用的方法
  3. 笔记-项目立项管理-项目论证的程序
  4. Java反射基础:获取Class对象的三种方式
  5. java将字符串转换成可执行代码
  6. Windows平台如何查看一个dll依赖的其他dll
  7. VSCode解决中文乱码问题
  8. 4k hidpi 黑苹果_黑苹果开启缩放分辨率HiDPi以及字体模糊的调整方法总结
  9. 加拿大大学商用计算机专业,加拿大大学计算机专业排名一览
  10. 【DDNS更新】--公云的DDNS自动更新
  11. python在教育领域的应用课题_研究型案例在Python教学方法中应用
  12. 【狂神说Java】Docker最新超详细版教程通俗易懂 - 学习笔记
  13. 对偶理论说明(深入理解)
  14. DJ2-2 进程管理
  15. Toad 所有 菜单说明(太多)
  16. SPSS学习笔记之——OR值与RR值
  17. LeetCode - 486. Predict the Winner(排成一条线的纸牌博弈问题)
  18. Cytoscape.js – 用于数据分析和可视化的交互图形库
  19. vue中关于$emit和.sync的用法
  20. 计算直柱体的面积和体积

热门文章

  1. linux l文件共享,llinux服务器文件共享的一种简单的方法
  2. opc调试软件_组态王和三菱OPC软件完美演绎天塔之光
  3. pythonfor循环语句例题_python循环语句的使用练习题
  4. 【TPC协议头解析】
  5. marker主题 ros_(五)ROS主题理解
  6. python页面驱动mxd_如何利用python 批量导出mxd至jpg
  7. linux centos7安装ngix,centos7 环境下安装nginx--Linux
  8. 判断unsigned long long乘法溢出_信息安全课程17:缓冲区溢出2
  9. dataframe 选择输出_使用 Python 实现机器学习特征选择的 4 种方法
  10. 2台电脑一根网线传文件_Iphone 和PC如何共享文件