Python3 三元表达式、列表推导式、生成器表达式
2024-09-07 07:51:10
Python3 三元表达式、列表推导式、生成器表达式
- 三元表达式
表达式中,有三个元素
name = input("请输入姓名: ")
ret = '输入正确' if name == 'aaa' else '输入错误'
print(ret)
- 列表推导式
#1、示例
# 方法1
egg_list1 = []
for i in range(10):
egg_list1.append('鸡蛋%s' % i)
print(egg_list1) #方法2
egg_list2 = ['鸡蛋%s' %i for i in range(10)]
print(egg_list2)#2、语法
[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
类似于
ret=[]
for item1 in iterable1:
if condition1:
for item2 in iterable2:
if condition2:
...
for itemN in iterableN:
if conditionN:
ret.append(expression) #3、有点:方便,改变了编程习惯,可称之为声明式编程。
- 生成器表达式
#1、把列表推导式的[]换成()就是生成器表达式 #2、示例:生一筐鸡蛋变成给你一只老母鸡,用的时候就下蛋,这也是生成器的特性
chicken = ('鸡蛋%s' %i for i in range(5))
print(chicken) #<generator object <genexpr> at 0x0000020910EAFF68> print(next(chicken)) #鸡蛋0
print(list(chicken)) ['鸡蛋1', '鸡蛋2', '鸡蛋3', '鸡蛋4'] #3、优点省内存,一次只产生一个值在内存中
- 练习:
#将列表中的名字全部变大写names=['lily','hanmeimei_hr','lilei','bob']names = [name.upper() for name in names]
print(names)
#将列表中以hr结尾的名字过滤掉,然后保存剩下的名字长度
names=['lily','hanmeimei_hr','lilei','bob'] names=[len(name) for name in names if not name.endswith('hr')]
print(names)
# 求文件a.txt中最长的行的长度(长度按字符个数算,需要使用max函数)
with open('a.txt' ,encoding='utf-8') as f:
print(max(len(line) for line in f ))
# 求文件a.txt中总共包含的字符个数?思考为何在第一次之后的n次sum求和得到的结果为0?(需要使用sum函数)
with open('a.txt', encoding='utf-8') as f:
print(sum(len(line) for line in f))
print(sum(len(line) for line in f)) #求包换换行符在内的文件所有的字符数,为何得到的值为0?
print(sum(len(line) for line in f)) #求包换换行符在内的文件所有的字符数,为何得到的值为0?
最新文章
- RAID与双机热备简单介绍与区别
- C# Out 传值
- Jni中C++和Java的参数传递 参数对照
- Windows7下 配置 Apache + PHP + MySQL + Zend Studio配置
- Linux磁盘占用100%解决方法
- 【UR #12】实验室外的攻防战(BIT)
- Big Data應用:以";玩家意見";之數據分析來探討何謂";健康型線上遊戲";(上)
- jQuery.YesShow - 图片轮播插件(带图片放大功能)
- Excel VBA ——批量工作表重命名
- Flex Label自动截取、自动换行
- python glob 用通配符查找指定目录中的文件 - 开源中国社区
- 开发一个基于 Android系统车载智能APP
- Docker系列三:Docker容器管理
- sort list(给链表排序)
- 【原创】大数据基础之Spark(1)Spark Submit即Spark任务提交过程
- WinForm 绑定到嵌套对象上的属性
- hyperledger中文文档学习-1-词汇表
- Auzre系列1.1.1 —— 安装用于 IntelliJ 的 Azure 工具包
- Hadoop -- 概念
- Go语言之unsafe包介绍及使用