python基础——列表推导式

1 列表推导式定义

列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形

2 列表推导式语法

基本格式如下:

[expr for value in collection ifcondition]

过滤条件可有可无,取决于实际应用,只留下表达式

列表推导式例子:

l=["egg%s"%i for i in range(10)]
print(l)

类似于这段for代码:

egg_list=[]
for i in range(10):
egg_list.append("egg%s"%i)
print(egg_list)

  

列表推导式还可以加更多的if判断for循环

l=['egg%s' %i for i in range(1,101)]
l=['egg%s' %i for i in range(1,101) if i >50 ]
l=['egg%s' %i for i in range(1,101) if i >50 if i<60]
print(l)

 

3 列表推导式优点

方便,改变了编程习惯,属于声明式编程

举例:

l=[1,2,3,4]
s="hello"
l1=[(num,i) for num in l for i in s]
print(l1)

输出结果为:  

[(1, 'h'), (1, 'e'), (1, 'l'), (1, 'l'), (1, 'o'), (2, 'h'), (2, 'e'), (2, 'l'), (2, 'l'), 
(2, 'o'), (3, 'h'), (3, 'e'), (3, 'l'), (3, 'l'), (3, 'o'), (4, 'h'), (4, 'e'), (4, 'l'),
(4, 'l'), (4, 'o')]

  

这个列表推导式相当于:

l=[1,2,3,4]
s="hello"
l1=[]
for num in l:
for i in s:
t=(num,i)
l1.append(t)
print(l1)

4 列表表达式例子

import os
g=os.walk("C:\python_fullstack_wen\day24\wen")
file_path_list=[]
for i in g:
for j in i[-1]:
file_path_list.append("%s\\%s"%(i[0],j))
print(file_path_list) g=os.walk("C:\python_fullstack_wen\day24\wen")
file_path_list=["%s\\%s"%(i[0],j) for i in g for j in i[-1]]
print(file_path_list)

输出结果:

['C:\\python_fullstack_wen\\day24\\wen\\yan1.txt', 'C:\\python_fullstack_wen\\day24\\wen\\wen1
\\yan1.txt', 'C:\\python_fullstack_wen\\day24\\wen\\wen1\\jie1\\yan1.txt',
'C:\\python_fullstack_wen\\day24\\wen\\wen1\\yan1\\yan1.txt',
'C:\\python_fullstack_wen\\day24\\wen\\wen2\\yan2.txt']
['C:\\python_fullstack_wen\\day24\\wen\\yan1.txt', 'C:\\python_fullstack_wen\\day24\\wen\\wen1\\yan1.txt', 'C:\\python_fullstack_wen\\day24\\wen\\wen1\\jie1\\yan1.txt', 'C:\\python_fullstack_wen\\day24\\wen\\wen1\\yan1\\yan1.txt', 'C:\\python_fullstack_wen\\day24\\wen\\wen2\\yan2.txt']

python基础——列表推导式的更多相关文章

  1. Python基础-列表推导式

    python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...

  2. Python基础-列表推导式、匿名函数、os/sys/time/datetime/pymysql/xlwt/hashlib模块

    列表推导式 [表达式 for 变量 in range(n) if 条件]  等效于 for 变量 in in range(n): if 条件: 表达式 优点:书写方便,缺点:不易读 注意:用的是方括号 ...

  3. python 3列表推导式的的一点理解!

    python 3列表推导式的的一点理解! Python的列表推导式对于新手来说一般都难以理解,简单看个例子: [x * x for x in range(1,100)] 上面是一个很简单的列表推导式, ...

  4. Python的列表推导式

    1.列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 2.举例说明: #!/usr/bin/python # -*- codi ...

  5. Python函数——列表推导式、生成器与迭代器

    列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...

  6. Python之列表推导式

    我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...

  7. python - list 列表推导式

    一.如有两个list,分别为: a = [1,2,3,4,5,6]b = ["a","b","c","d"," ...

  8. Python基础---三大推导式

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

  9. Python的列表推导式,字典推导式,集合推导式使用方法

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

随机推荐

  1. table_rows查询优化

    日常应用运维工作中,Dev或者db本身都需要统计表的行数,以此作为应用或者维护的一个信息参考.也许很多人会忽略select count(*) from table_name类似的sql对数据库性能的影 ...

  2. 数字不断递增 可控制js

    (function($){ $.fn.numberRock=function(options){ var defaults={ speed:, count: }; var opts=$.extend( ...

  3. 笔记:Jersey REST 传输格式

    通常REST接口会以XML或JSON作为主要传输格式,同时 Jersey 也支持其他的数据格式,比如基本类型.文件.流等格式. 基本类型 Java的基本类型又叫原生类型,包括4种整数(byte.sho ...

  4. Shell 读取用户输入

    14.2  读取用户输入 14.2.1  变量 上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量.如果您的shell脚本不需要调用其他脚本,其中的变量通常设置为脚 ...

  5. PHP源代码加密

    加密软件(php_screw) >下载网站:http://sourceforge.net/projects/php-screw/ >描述:php文件通常以文本格式存贮在服务器端, 很容易被 ...

  6. selenium2自动化测试学习笔记(五)-参数化编程,自动登陆网易QQ邮箱

    学习python下使用selenium2自动测试第6天,参数化编程这节课花了两天时间. 本次编程主要时间是花在熟悉python上 知识点or坑点: 1.读取txt.xml.csv等文件存储的账号.密码 ...

  7. C语言博客作业—一二维数组

    一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){/ ...

  8. C语言博客作业—字符数组

    一.PTA实验作业 题目1:字符串转换成十进制整数 1. 本题PTA提交列表 2. 设计思路 (1)定义i为循环变量,number用于存放每一次转化的结果,flag用于判断是否为负数,p用于修改结果的 ...

  9. 冲刺NO.12

    Alpha冲刺第十二天 站立式会议 项目进展 项目核心功能,如学生基本信息管理模块,学生信用信息模块,奖惩事务管理模块等等都已完成,测试工作大体结束. 问题困难 项目结束后对项目的阶段性总结缺乏一定的 ...

  10. CPP链表示例

    #include<iostream> #include<stdlib.h> using namespace std; typedef struct Student_data { ...