文档章节

Python 列表推导式(列表解析式)

掉包虾
 掉包虾
发布于 2016/04/09 10:47
字数 409
阅读 244
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

列表解析式重要的思想:

        根据某种特征的对象生成一个指定的序列链表

        想想其实说的挺有道理,我生成一个链表就是为了简单,为什么要写的那么复杂来生成链表。

一:一般列表解析式

  1. 生成一个 平方列表

squares = []
for x in range(10):
   squares.append(x**2)

    列表推导式:

squares = [x**2 for x in range(10)]

二 整除3的列表

numbers = []for x in range(100):
    if x % 3 == 0:
        numbers.append(x)

    列表解析式

numbers = [x for x in range(100) if x % 3 == 0]

二:列表解析式  (两个  for语句)

质数的序列

noprimes = []
for i in range(2, 8):
    for j in range(i*2, 50, i):
        noprimes.append(j)
primes = []
for x in range(2, 50):
    if x not in noprimes:
        primes.append(x)

用两个列表推导式

noprimes = [j for i in range(2, 8) for j in range(i*2, 50, i)]
primes = [x for x in range(2, 50) if x not in noprimes]

案列二 : 生成如下数组

matrix = [[0,1,2,3], [4,5,6,7], [8,9,10,11]]
flattened = []
for row in matrix:
    for i in row:
        flattened.append(i)

列表解析式法:

flattened = [i for row in matrix for i in row]

三:列表解析式中   中加 if 语句判断

实例 : 获得当前文件夹中所有的以.txt为结尾的文件 列表

import os
files = []for f in os.listdir('./my_dir'):
    if f.endswith('.txt'):
        files.append(f)

列表解析式法(加 if 语句):

import os
files = [f for f in os.listdir('./my_dir') if f.endswith('.txt')]

四:列表解析中 双重For语句 双重if语句

result = [(x,y)
          for x in range(10)
          for y in range(10)
          if x + y == 5 
          if x > y]


© 著作权归作者所有

掉包虾
粉丝 2
博文 29
码字总数 6635
作品 0
程序员
私信 提问
Python迭代器生成器,私有变量及列表字典集合推导式(二)

1 python自省机制 这个是python一大特性,自省就是面向对象的语言所写的程序在运行时,能知道对象的类型,换句话说就是在运行时能获取对象的类型,比如通过 type(),dir(),getattr(),hasattr(),i...

善良小郎君
2018/06/11
0
0
《利用Python进行数据分析2》—4

字典 字典中的值是任意的对象 字典中的键必须是不可变的对象,例如int、float、string、tuple等。不可变就是可哈希的,用hash()函数进行检查。 列表要当做键可以先转成元组,list--->tuple :...

皮皮大
07/16
0
0
python的各种推导式(列表推导式、字典推导式、集合推导式)

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持: 列表(list)推导式 字...

326647452
2017/07/10
0
0
Python 函数 类 语法糖

Python 语法糖 ,换行连接 while,for 循环外的 else 如果 while 循环正常结束(没有break退出)就会执行else。 zip() 并行迭代 列表推导式 字典推导式 { keyexp : valueexp fro expression...

zzir
2016/08/13
0
0
Supporting Python 3(支持python3)——使用现代的风格改善你的代码

使用现代风格改善你的代码 原文: http://python3porting.com/improving.html 译者: TheLover_Z 一旦你开始使用 Python 3,你就有机会接触新的特性来改善你的代码。这篇文章中提到的很多东西...

在湖闻樟
2015/10/26
133
0

没有更多内容

加载失败,请刷新页面

加载更多

一篇文章教你轻松使用fastjson

前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y JSON相信大家对他也不陌生了,前后端交互中常常就以JSON来进行数据交换。而有的...

Java3y
33分钟前
4
1
分组功能(tapply,by,aggregate)和* apply系列

每当我想在R中做“ map” py任务时,我通常都会尝试在apply系列中使用一个函数。 但是,我从未完全理解它们之间的区别-{ sapply , lapply等}如何将函数应用于输入/分组输入,输出将是什么样...

javail
33分钟前
4
0
PHP环境搭建之单独安装

还在使用PHP集成环境吗?教你自定义搭建配置PHP开发环境,按照需求进行安装,安装的版本可以自己选择,灵活性更大。 目录: 1. 安装Apache 2. 安装PHP 3. 安装MySQL 4. 安装Composer 观看:h...

不冷的大叔
44分钟前
4
0
为什么JavaScript变量会以美元符号开头?

我经常看到JavaScript带有以美元符号开头的变量。 您何时/为什么选择以这种方式为变量添加前缀? (我不是在问您在jQuery和其他语言中看到的$('p.foo')语法,而是普通变量,例如$name和$orde...

技术盛宴
48分钟前
4
0
TCP 三次握手

https://my.oschina.net/u/4198159/blog/3141874

奋斗的小牛
57分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部