列表,字典表达式以及三元表达式

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

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

2.列表生成式
l=[item**2 for item in range(1,11)]
print(l)
print(next(iter(l))) # 两次都是输出1
print(next(iter(l))) # 因为重新生成了一次对象
res = l.__iter__()
print(next(res)) 1
print(next(res)) 4
print(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=l
names=[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 = item
for k,v in zip(keys,values):
d[k]=v
print(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JUnit 5 –条件

最近&#xff0c;我们了解了JUnit的新扩展模型以及它如何使我们能够将自定义行为注入测试引擎。 我向你保证要看情况。 现在就开始吧&#xff01; 条件允许我们在应该执行或不应该执行测试时定义灵活的标准。 它们的正式名称是“ 条件测试执行” 。 总览 本系列中有关JUnit 5…

我的编程竞赛之路 ——中国大学生计算机编程第一人楼天城访谈

记者/陈秋歌 25岁的楼天城有“中国大学生计算机编程第一人”的称号&#xff0c;也被参加竞赛的学子们敬称为“楼教主”。他的传奇经历一直激励着众多年轻学子&#xff1a;从2001年开始参加计算机编程竞赛&#xff0c;并连获全国一等奖&#xff1b;2004年入选国家集训队&#xf…

MATLAB集合运算

intersect求两个集合的交集ismember检测集合中的元素setdiff求两个集合的差setxor求两个集合交集的非&#xff08;异或&#xff09;union求两个集合的并集unique取集合的单值元素注&#xff1a;交并等操作会对操作结果进行排序

IE8兼容性问题的解决方案

前几天&#xff0c;面试到Ie8的一些兼容问题&#xff0c;傻眼了&#xff0c;回想自己做了将近2年的移动端项目&#xff0c;ie兼容似乎没怎么做过。所以私下便开始找找ie兼容的视频或者文章学习&#xff0c;唉&#xff0c;还是不买书了&#xff0c;家里那么多书&#xff0c;都没…

jenkins部署_Jenkins:部署JEE工件

jenkins部署随着持续集成和持续交付的出现 &#xff0c;我们的构建被分为不同的步骤&#xff0c;以创建部署管道。 这些步骤中的一些步骤可以是例如编译和运行快速测试&#xff0c;运行慢速测试&#xff0c;运行自动验收测试或发布应用程序等。 部署流程的最后步骤意味着将我们…

2013年3月编程语言排行榜:有毒的Java

2013年3月12日&#xff0c;Tiobe公布了新一期编程语言排行榜。Java依旧是占据第一的位置&#xff0c;C语言紧随其后。值得注意的Objective-C持续发力&#xff0c;已经占到了第三的位置。咋一看榜单&#xff0c;前5条中C#下滑最快&#xff0c;从第3名下降到第五名。而其他语言都…

MATLAB各种判断

1. isempty();%判断是否为空2. isnan();%判断是否为NaN3. iscell();%判断是否为元胞数组4. ischar();%判断是否为字符数组5. ismatrix();%判断是否为矩阵6. isrow();%Determine whether input is row vector7. ismember();

js 自定义类Android吐司提示框

(function(){var mouseX 0;var mouseY 0;//定义一个全局toaslist用来存在新建的吐司var toastLsit [];window.Toast function(content,duration,positon){return new Toast(content,duration,positon);}function Toast(content,duration,positon){//显示的内容this.content…

学习Lucene

我目前正在与一个团队合作&#xff0c;开始一个基于Lucene的新项目。 虽然大多数时候我会争论使用Solr还是Elasticsearch而不是简单的Lucene&#xff0c;但这是一个有意识的决定。 在这篇文章中&#xff0c;我正在整理一些学习Lucene的资源–希望您对他们有所帮助&#xff0c;或…

MATLAB递归程序的调试方法

MATLAB具有和VC类似的调试功能&#xff0c;各功能的按钮图标和VC也很相似&#xff0c;基本可以使用VC的调试思想。MATLAB自己的特点&#xff1a;一. 查看中间变量。1. 在调试状态下&#xff0c;鼠标放在变量上就可以显示变量的基本信息。2. 在调试状态下&#xff0c;在命令行输…

DHCP服务(dhcpd)

DHCP动态分配主机地址&#xff08;Dynamic Host Configuration Protocol&#xff09; 动态主机配置协议&#xff08;DHCP&#xff09;是一种基于UDP协议且仅限于在局域网内部使用的网络协议&#xff0c;主要用于大型的局域网环境或者存在较多移动办公设备的局域网环境中&#x…

最健康的睡眠时间究竟是多少?

我每天都睡足8个小时&#xff0c;怎么还是这么困啊&#xff1f;”很多男性朋友都有这样的疑问。不是说每天8个小时的睡眠是最健康的&#xff0c;为什么那些一天睡5、6个小时的人看上去反而更生龙活虎、精力充沛呢&#xff1f; 怪8小时不如6小时的精神 睡眠不足会导致精力不济、…

Matlab Compiler路径

Matlab Compiler run-time找了半天就在自己的安装目录下D:\Program Files\MATLAB\R2011b\toolbox\compiler\deploy\win32\MCRInstaller.ex

EF context.SaveChanges()特点

EF context.SaveChanges()特点1 一次连接保存多条数据&#xff08;工作单元模式&#xff09;&#xff1b;2 内部通过事务来执行&#xff0c;如果一条数据保存失败&#xff0c;执行回滚操作&#xff1b;3 延时加载var userListfrom u in context.UserInfo select u;foreach(var …

spring aop示例_Spring Profile模式示例

spring aop示例最近&#xff0c;我们介绍了Spring Profiles的概念。 此概念是针对不同部署环境的轻松配置区分符。 直接的用例&#xff08;已提出&#xff09;是对相关的类进行注释&#xff0c;以便Spring根据活动的配置文件加载适当的类。 但是&#xff0c;这种方法可能并不…

如何提高学习效率?

学习效率 目录 介绍如何提高规律展开介绍如何提高规律展开编辑本段介绍 学习效率对中学生的重要性无须在此多言。提高孩子的学习效率是每个老师的心愿&#xff0c;更是学生及其家长的追求目标。学习兴趣、学习能力和学习效率三者是和谐统一的辩证关系&#xff0c;将这三项标准严…

基于Matlab/Simulink不平衡电网工况下级联H桥光伏并网逆变器仿真模型

本次更新的内容为级联H桥光伏并网逆变器相关的控制&#xff0c;后面会针对储能系统在级联H桥拓扑上的应用进行分享。由于传统发电造成的环境污染问题和光伏电池板价格持续创新低&#xff0c;太阳能从众多种类的可再生能源中拔地而起&#xff0c;因而光伏逆变器成为国内外学者和…

MATLAB格式化字符串

sprintf(%s City %d Quarter,str,i);

“速课小龙”项目冲刺3

第三天 日期&#xff1a;2018/6/15 一.今日完成任务情况及遇到的问题 姓名完成情况遇到的问题解决方法邓旭 通过对昨天的知识进行再学习&#xff0c;已经能进行文件上传。并且开始着手于出题模块。 今天着手只是模型的基础层搭建&#xff0c;所以难度相对较少。未有问题解决陈逸…

Java和Lagom的CQRS

我很高兴在Chicago Java User Group上进行了讨论&#xff0c;并讨论了Lagom如何实现CQRS&#xff08;命令查询责任隔离模式&#xff09;。 值得庆幸的是&#xff0c;有一个录音&#xff0c;我还把这些幻灯片发布在slideshare上 。 抽象&#xff1a; 一旦应用程序变得相当复杂…