列表生成式   (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中的列表生成式相关推荐

  1. python中的列表生成式 | 字典生成式

    1.列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list  [1, 2, 3, 4, 5, 6, ...

  2. python中的列表生成式_Python中的列表生成式

    列表生成式 抛出一个问题,创建一个从1到100的列表,该怎么写: while li = [] i = 1 while i <= 100: li.append(i) i += 1 print(li ...

  3. python中的列表生成式_生成器中的列表推导式

    # 2,用列表推导式做下列小题 # 1)过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 # lst=['abc','asfg','ad','ap'] # print([i.upper() fo ...

  4. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  5. python中创建列表[]和list()哪个效率快?为什么快?快多少呢?

    python中创建列表的两种方式: # 方法一:使用成对的方括号语法 list_a = []# 方法二:使用内置的 list() list_b = list() 1. [] 是 list() 的三-四 ...

  6. 这12种方法轻松合并Python中的列表

    我喜欢12这个数字,因为有太多的事情与12有关.一年有12个月;古代用12个时辰(地支)表示一天的时间.用一纪表示12年;希腊有12主神;黄道有12宫;撒迦利亚.西琴先生的<地球编年史>中 ...

  7. 从python中的列表中获取唯一值[重复]

    本文翻译自:Get unique values from a list in python [duplicate] This question already has an answer here: ...

  8. 如何在Python中反转列表?

    如何在Python中执行以下操作? array = [0, 10, 20, 40] for (i = array.length() - 1; i >= 0; i--) 我需要一个数组的元素,但是 ...

  9. python中的列表和元组_python中列表和元组的区别

    如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改.除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是 ...

最新文章

  1. OFDM调制系统传输的复信号从何而来?
  2. springboot 返回字符串带引号_SpringBoot-基础
  3. Valgrind 使用方法
  4. Python学习笔记(随机数)
  5. [vue] 你有自己用vue写过UI组件库吗?
  6. mysql参数配置详情_MySQL配置文件mysql.ini参数详解、MySQL性能优化
  7. firebug和firepath插件下载安装
  8. 微信小程序 | 实现活动报名登记
  9. php输出cad文件,AutoCAD 二次开发 输出为WMF 或BMP文件
  10. 校园网认证破解教程(某数字科技学院)
  11. 1.Requests库
  12. mp3怎么转换成m4r(iPhone铃声制作)
  13. Dungeon Master(地牢大师、底下城主)三维bfs
  14. 三线压力传感器原理_三线机油压力传感器作用是什么?工作原理是什么?
  15. (c++)五分制成绩(函数实现)
  16. 爬虫:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position
  17. 【就是这么简单】系列
  18. 构建表情符号制作应用程序
  19. 北美电影票房Top10-2020年1月10日:《1917》扬眉吐气
  20. 如何看手相 男左女右(转)

热门文章

  1. 关于使用 ./ 执行sh文件报错-bash: ./startup.sh: /bin/sh^M: bad interpreter: No such file or directory
  2. PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT
  3. N Problems During K Days
  4. Reachable Numbers
  5. Complex Congratulation β
  6. 历数2013年优秀的开源游戏引擎与开源游戏项目
  7. Matlab常用的11个快捷键【注释、自动对齐、跳转指定行、设置标签and断点、自动补全、历史命令、强制中断运行、退出、单行注释转多行】
  8. RocketMQ Broker的最佳实践
  9. BUG总结—— No mapping found for HTTP request with URI
  10. IOS Push 证书的重新生成