前言

列表做为python的基础,是必须学习的语法之一。一些基础的之前已经是反复温习和使用了,今天我们来学习它的进阶版--》列表推导式。

列表推导式:

  • 优点:是将所有的值一次性加载到内存中,相比于for循环生成的列表执行速度快,并且语法精简,一行代码就完成for循环多行代码所要完成的事情。
  • 缺点:代码的可阅读性就不太友好了

    语法
[i for i in iterable if expression]

案例

1. 列表推导式可以与 if 表达式结合

首先使用常用的for循环实现

numbers = [-4, -3, -2, -1, 0, 2, 4, 6]
listA = []
for i in numbers:
if i > 0:
listA.append(i)
print(listA)



下面请出列表推导式

numbers = [-4, -3, -2, -1, 0, 2, 4, 6]
x = [x for x in numbers if x>0]
print(x)

2. 将以下二维列表展开成一维列表:

list_of_lists =[[[1, 2, 3]], [[4, 5, 6]], [[7, 8, 9]]]
l = [num for r in list_of_lists for num in r]
s = [num for r in l for num in r]
print(l)
print(s)

3. 使用列表推导式创建元组列表:

要生成的元组如下:

[(0, 1, 0, 0, 0, 0, 0),

(1, 1, 1, 1, 1, 1, 1),

(2, 1, 2, 4, 8, 16, 32),

(3, 1, 3, 9, 27, 81, 243),

(4, 1, 4, 16, 64, 256, 1024),

(5, 1, 5, 25, 125, 625, 3125),

(6, 1, 6, 36, 216, 1296, 7776),

(7, 1, 7, 49, 343, 2401, 16807),

(8, 1, 8, 64, 512, 4096, 32768),

(9, 1, 9, 81, 729, 6561, 59049),

(10, 1, 10, 100, 1000, 10000, 100000)]

s = [(i,1,i,i**2,i*i**2,i**4,i**2*i*i**2) for i in range(11)]
print(s)

4. 将多嵌套列表合并为一个新列表:

countries = [[('Finland', 'Helsinki')], [('Sweden', 'Stockholm')], [('Norway', 'Oslo')]]
ls = [num for i in countries for num in i]
ll = [num for i in ls for num in i]
print(ll)

5. 将列表更改为字典列表:

ll = []
countries = [[('Finland', 'Helsinki')], [('Sweden', 'Stockholm')], [('Norway', 'Oslo')]]
country = ['country','city']
ls = [num for i in countries for num in i]
for i in ls:
x = dict(zip(country, i))
ll.append(x)
print(ll)

Python列表推导式玩法的更多相关文章

  1. python 各种推导式玩法

    推导式套路 除了最简单的列表推导式和生成器表达式,其实还有字典推导式.集合推导式等等. 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable = [out_exp_re ...

  2. Python列表推导式和嵌套的列表推导式

    列表推导式提供了一个更简单的创建列表的方法.常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列. 例如,假设我们想创建一个平方 ...

  3. python 列表推导式 - python基础入门(16)

    截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高. 一.什么是推导式 推导式是从一个或者多个 ...

  4. Python 之各种推导式玩法

    推导式套路 之前我们已经学习了最简单的列表推导式和生成器表达式.但是除此之外,其实还有字典推导式.集合推导式等等. 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable ...

  5. Python基础之各种推导式玩法

    一.推导式套路 除了我们之前所学习的列表推导式和生成器表达式之外,还有字典推导式.集合推导式等等. 下面就是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable = [out ...

  6. python列表推导式详解

    推导式是Python中很强大的.很受欢迎的特性,具有语言简洁,简化代码,速度快等优点.推导式包括:1.列表推导式2.字典推导式3.集合推导式4.嵌套列表推导式注意: 字典和集合推导是最近才加入到Pyt ...

  7. python列表推导式详解 列表推导式详解 字典推导式 详解 集合推导式详解 嵌套列表推导式详解

    推导式是Python中很强大的.很受欢迎的特性,具有语言简洁,简化代码,速度快等优点.推导式包括:1.列表推导式2.字典推导式3.集合推导式4.嵌套列表推导式注意: 字典和集合推导是最近才加入到Pyt ...

  8. python(列表推导式和生成器表达式)

    从母鸡下蛋的故事讲起 老母鸡 = ('鸡蛋%s'%i for i in range(10)) print(老母鸡) for 蛋 in 老母鸡: print(蛋) g = (i*i for i in r ...

  9. python列表推导式(扫盲)

    1) 简单了解: 所谓的列表推导式,就是指的轻量级循环创建列表. 格式: 列表推导式的常见形式: my_list = [ item for item in iterable] my_list: 列表名 ...

随机推荐

  1. word IF嵌套实现登记学生成绩(合格,良好,优秀)

    word IF函数 IF语法 IF(判断条件,条件成立的动作,条件不成立的动作),以逗号(英文)分隔 例:=IF( 0 < 1 , "good" , "bad&qu ...

  2. Big Sur 11.0.1 让2K屏幕开启Hidpi

    首先来个成果图: 一.复制显示器配置文件 终端输入命令:cd /System/Library/Displays/Contents/Resources/Overrides 接着输入:open . 打开D ...

  3. virtualbox sharefolder mount fail

    ubuntu 14.04.1 LTS 64bit 安装完GuestAdditions后,在终端输入 sudo mount -t vboxsf sharename /mnt/share 提示错误:mou ...

  4. npm的下载与安装

    1.Node (1)什么是Node.js Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. (2)Node ...

  5. 多任务-python实现-进程(2.1.7)

    @ 目录 1.进程是什么 2.进程的生命周期 3.Python中多进程的实现 4.进程和线程的区别 1.进程是什么 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源 ...

  6. 每日CSS_霓虹灯按钮悬停效果

    每日CSS_霓虹灯按钮悬停效果 2020_12_20 1. 代码解析 1.1 html 代码片段解析 <a href="#"> <span></spa ...

  7. 第一章: 初始JVM

    跟很多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看.所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试. 因为装逼 但我经过了几年的学习和实战,我发现其实 ...

  8. qs的工具方法讲解

    简单来说,qs 是一个增加了一些安全性的查询字符串解析和序列化字符串的库. 今天在学习同事的代码, 在学习过程中遇到了这样一句代码 研究了很久,只了解了个大概,后面慢慢的用熟练只会,想着做个总结,温习 ...

  9. Java进阶:基于TCP通信的网络实时聊天室

    目录 开门见山 一.数据结构Map 二.保证线程安全 三.群聊核心方法 四.聊天室具体设计 0.用户登录服务器 1.查看当前上线用户 2.群聊 3.私信 4.退出当前聊天状态 5.离线 6.查看帮助 ...

  10. rest framework Serializer fields

    串行领域 在表单类中的每个字段不仅负责验证数据,同时也为"清洁" - 它以标准化格式一致. - Django文档 串行字段手柄的原始值和内部数据类型之间的转换.他们还应对验证输入值 ...