python中的列表生成式
列表生成式 (List Comprehensions)
1.列表生成式:是python内置的比较简单但是功能强大的用于生成list的生成式
语法: [元素 for循环 if语句]
说明: 元素和for循环不能省略,但是,if语句可以省略
第一个需求:生成一个列表,[1,2,3,4,5,6,7,8,9]
用传统的方法,就可以完成
# 方式一:使用range()和list()函数 list1 = list(range(1, 10)) print(list1)# 方式二:循环,添加到列表中 list2 = [] for i in range(1,10):list2.append(i) print(list2)""" 通过range生成的列表,缺点:生成的列表规律性较强,其中的元素相互之间的差值是相等的【step】 """
第二个需求: 生成一个列表,[1,4,9,16,25,36,49,64,81]
使用传统的方式 list3 = [] for i in range(1,10):list3.append(i ** 2) print(list3)
使用列表生成式, 会发现就会代码会少很多 list4 = [i ** 2 for i in range(1, 10) if i % 2 == 1] print(list4)
第三个需求:生成一个列表,列表中的元素为1-100以内3的倍数
# 方式一:传统方式 list5 = [] for i in range(1, 100):if i % 3 == 0:list5.append(i) print(list5) # 方式二:使用列表生成式 list6 = [i for i in range(1, 100) if i % 3 == 0] print(list6)
2.列表生成式可以书写多个for循环,表示for循环的嵌套
# 方式一:传统方式 list7 = [] for i in "abc":for j in "xyz":list7.append(i + j) print(list7) # 方式二:使用列表生成式 list8 = [i + j for i in "abc" for j in "xyz"] print(list8)
3.在for循环中可以定义多个变量
需求:有个字典 dict1 = {'a': 10, 'b': 20, 'c': 30} , 需要得到这种列表样子: ['a10', 'b20', 'c30']
dict1 = {'a': 10, 'b': 20, 'c': 30} # 方式一:传统方式 list9 = [] for key, value in dict1.items():list9.append(str(key) + str(value)) print(list9) # 方式二:使用列表生成式 list10 = [key + str(value) for key, value in dict1.items()] print(list10)
4.列表生成式的好处和坏处
"""注意:列表生成式相比较普通列表的生成式,比较简洁,但是只能实现简单的逻辑,否则代码的可读性降低 """
5.使用列表生成式将一个列表元素中的小写字母转换为大写,生成一个新的列表
list_1 = ['hello', 10, 'Abc', 'asBd', True] # 方式一: newlist_1 = [] for s in list_1:if isinstance(s, str): # isinstance()来判断是不是str类型newlist_1.append(s.upper()) print(newlist_1) # 方式二: newlist_2 = [s.upper() for s in list_1 if isinstance(s, str)] print(newlist_2)
python中的列表生成式相关推荐
- python中的列表生成式 | 字典生成式
1.列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, ...
- python中的列表生成式_Python中的列表生成式
列表生成式 抛出一个问题,创建一个从1到100的列表,该怎么写: while li = [] i = 1 while i <= 100: li.append(i) i += 1 print(li ...
- python中的列表生成式_生成器中的列表推导式
# 2,用列表推导式做下列小题 # 1)过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 # lst=['abc','asfg','ad','ap'] # print([i.upper() fo ...
- 逗号分隔的字符串转换为Python中的列表 split
将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...
- python中创建列表[]和list()哪个效率快?为什么快?快多少呢?
python中创建列表的两种方式: # 方法一:使用成对的方括号语法 list_a = []# 方法二:使用内置的 list() list_b = list() 1. [] 是 list() 的三-四 ...
- 这12种方法轻松合并Python中的列表
我喜欢12这个数字,因为有太多的事情与12有关.一年有12个月;古代用12个时辰(地支)表示一天的时间.用一纪表示12年;希腊有12主神;黄道有12宫;撒迦利亚.西琴先生的<地球编年史>中 ...
- 从python中的列表中获取唯一值[重复]
本文翻译自:Get unique values from a list in python [duplicate] This question already has an answer here: ...
- 如何在Python中反转列表?
如何在Python中执行以下操作? array = [0, 10, 20, 40] for (i = array.length() - 1; i >= 0; i--) 我需要一个数组的元素,但是 ...
- python中的列表和元组_python中列表和元组的区别
如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改.除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是 ...
最新文章
- OFDM调制系统传输的复信号从何而来?
- springboot 返回字符串带引号_SpringBoot-基础
- Valgrind 使用方法
- Python学习笔记(随机数)
- [vue] 你有自己用vue写过UI组件库吗?
- mysql参数配置详情_MySQL配置文件mysql.ini参数详解、MySQL性能优化
- firebug和firepath插件下载安装
- 微信小程序 | 实现活动报名登记
- php输出cad文件,AutoCAD 二次开发 输出为WMF 或BMP文件
- 校园网认证破解教程(某数字科技学院)
- 1.Requests库
- mp3怎么转换成m4r(iPhone铃声制作)
- Dungeon Master(地牢大师、底下城主)三维bfs
- 三线压力传感器原理_三线机油压力传感器作用是什么?工作原理是什么?
- (c++)五分制成绩(函数实现)
- 爬虫:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position
- 【就是这么简单】系列
- 构建表情符号制作应用程序
- 北美电影票房Top10-2020年1月10日:《1917》扬眉吐气
- 如何看手相 男左女右(转)
热门文章
- 关于使用 ./ 执行sh文件报错-bash: ./startup.sh: /bin/sh^M: bad interpreter: No such file or directory
- PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT
- N Problems During K Days
- Reachable Numbers
- Complex Congratulation β
- 历数2013年优秀的开源游戏引擎与开源游戏项目
- Matlab常用的11个快捷键【注释、自动对齐、跳转指定行、设置标签and断点、自动补全、历史命令、强制中断运行、退出、单行注释转多行】
- RocketMQ Broker的最佳实践
- BUG总结—— No mapping found for HTTP request with URI
- IOS Push 证书的重新生成