python 列表推导式

简介: 1、列表推导式书写形式:   [表达式  for  变量 in  列表]   或者 [表示式   for  变量  in  列表 if 条件] 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 li = [1,2,3,4,5,...

1、列表推导式书写形式:

  [表达式  for  变量 in  列表]   或者 [表示式   for  变量  in  列表 if 条件]

 1 #!/usr/bin/python
 2 # -*- coding: utf-8 -*-
 3 
 4 li = [1,2,3,4,5,6,7,8,9]
 5 print [x**2 for x in li]
 6 
 7 print [x**2 for x in li if x>5]
 8 
 9 print dict([(x,x*10) for x in li])
10 
11 
12 print  [ (x, y) for x in range(10) if x % 2 if x > 3 for y in range(10) if y > 7 if y != 8 ]
13 
14 vec=[2,4,6]
15 vec2=[4,3,-9]
16 sq = [vec[i]+vec2[i] for i in range(len(vec))]
17 print sq
18 
19 print [x*y for x in [1,2,3] for y in  [1,2,3]]
20 
21 testList = [1,2,3,4]
22 def mul2(x):
23     return x*2
24 print [mul2(i) for i in testList]

 python 生成器表达式Generators  exprssion

(x+1  for   x  in lst) #生成器表达式,返回迭代器。外部的括号可在用于参数时省略;

举例:

  (x+1  for   x  in   lst  if  x!=0)

  多条for子句进行嵌套,嵌套次序就是for子句的顺序:

    ((x, y)  for  x  in  range(3)   for   y  in  range(x) )

列表解析就是鲜明的pythonic.

从python2.2起,生成器提供了一种简洁的方式帮助返回列表元素的函数来完成简单和有效的代码;

它基于yield指令,允许停止函数并立即返回结果。

此函数保存其执行上下文,如果需要,可立即继续执行;

如:

  def   fibonacci():

    a,  b = 0,  1

    while  True:

      yield  b

    a,  b = b,  a+b

python迭代器

python专门将关键字for用作了迭代器的语法糖。在for循环中,python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作;

  for  val  in  lst:

    print   val

  首先python将对关键字in后的对象调用iter函数获取迭代器,然后调用迭代器的next方法获取元素,直到抛出StopIteration异常。对迭代器调用iter函数时将返回迭代器自身,所以迭代器也可以用于for语句中,不需要特殊处理;

  常用的几个内建数据结构tuple、list、set、dict都支持迭代器,字符串也可以使用迭代操作。

使用迭代器的循环可以避开索引,但有时候我们还是需要索引来进行一些操作的,这时候内建函数enumerate就发挥作用了;

它能在iter函数的结果前加上索引,以元组返回:

  for  idx, ele in enumerate(lst):

    print  idx,  ele

  0 1  1 2  2 3  3 4  4 5

 

相关文章
|
3天前
|
算法 数据挖掘 数据处理
使用 Python 循环创建多个列表
在Python中,动态创建多个列表对于数据处理和算法实现十分有用。本文介绍了四种方法:1) 列表推导式,如创建偶数和奇数列表;2) 使用循环和`append()`,示例为生成斐波那契数列;3) 结合字典与循环,按条件(如正负数)分组;4) 列表生成器,用于一次性生成多组随机数列表。这些方法有助于提高代码效率和可读性。
14 1
|
10天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
50 0
|
10天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
11天前
|
存储 索引 Python
python学习5-列表的创建、增删改查、排序
python学习5-列表的创建、增删改查、排序
|
17天前
|
索引 Python 容器
python 数据类型之列表
python 数据类型之列表
|
19天前
|
索引 Python
Python标准数据类型-List(列表)
Python标准数据类型-List(列表)
42 1
|
24天前
|
存储 Java 程序员
【Python】6. 基础语法(4) -- 列表+元组+字典篇
【Python】6. 基础语法(4) -- 列表+元组+字典篇
41 1
|
29天前
|
C语言 Python
Python字典推导式:高效构建字典的利器
在Python编程中,字典推导式(Dictionary Comprehension)是一种强大的构造工具,它允许我们以简洁的方式从现有可迭代对象创建新的字典。通过字典推导式,我们可以轻松地对数据进行转换、过滤或重新组织,以符合特定的需求。本文将深入探讨字典推导式的概念、语法和应用场景,帮助读者更好地掌握这一高效的编程工具。
|
29天前
|
程序员 C语言 Python
Python列表推导式:简洁与高效的编程利器
在Python编程中,列表推导式(List Comprehension)是一种强大且优雅的工具,它允许我们以简洁的方式创建新的列表。列表推导式在Python程序员中广受欢迎,因为它能够将复杂的循环和条件语句简化为一行代码,提高代码的可读性和执行效率。
|
1月前
|
程序员 数据处理 开发者
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
23 2