Python推导式简单示例【列表推导式、字典推导式与集合推导式】

本文实例讲述了Python推导式。分享给大家供大家参考,具体如下:

1. 列表推导式

>>> li = [1,2,3,4,5,6]
# 求元素的平方
>>> li_a = [x**2 for x in li ]
>>> li_a
[1, 4, 9, 16, 25, 36]
# 提取偶数值
>>> li_b = [x for x in li if x%2==0]
>>> li_b
[2, 4, 6]
# 将多维数组转换成一维数组
>>> li_c = [[1,2], [3], [], [4,5,6]]
>>> li_d = [j for i in li_c for j in i ]
>>> li_d
[1, 2, 3, 4, 5, 6]
# 使用map
>>> li_1 = ['a', 'b', 'c', 'd']
>>> li_2 = [10, 20, 30, 40]
>>> li_e = list(map(lambda x, y:{x:y}, li_1, li_2))
>>> li_e
[{'a': 10}, {'b': 20}, {'c': 30}, {'d': 40}]

2. 字典推导式

# 解析列表
>>> li = ['a', 'b', 'c', 'd', 'e']
>>> li_1 = {k:v for k, v in enumerate(li)}
>>> li_1
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}
# 解析字典
>>> dict_a = {'a':10, 'b':20, 'c':30}
>>> dict_b = {v:k for k, v in dict_a.items()}
>>> dict_b
{10: 'a', 20: 'b', 30: 'c'}

3. 集合推导式

>>> set1 = {x for x in range(10)}
>>> set1
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

PS:上述代码在Python2.7与Python3.6环境下测试

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python列表推导式的使用方法

    1.列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 2.举例说明: 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- li = [1,2,3,4,5,6,7,8,9]print [x**2 for x in li] print [x**2 for x in li if x>5] print dict([(x,x*10) for x in li]) print  [ (

  • Python中的推导式使用详解

    推导式是Python中很强大的.很受欢迎的特性,具有语言简洁,速度快等优点.推导式包括: 1.列表推导式 2.字典推导式 3.集合推导式 嵌套列表推导式 NOTE: 字典和集合推导是最近才加入到Python的(Python 2.7 和Python 3.1以上版). 下面简要介绍下: [列表推导式] 列表推导能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 其基本格式如下: 复制代码 代码如下: [expr for value in collection ifcondi

  • Python生成器(Generator)详解

    通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了. 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间.在Python中,这种一边循环一边计算的机制,称为生成器(Generator). 简单生成器 要创建一个generator,有很

  • python的迭代器与生成器实例详解

    本文以实例详解了python的迭代器与生成器,具体如下所示: 1. 迭代器概述:   迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.   1.1 使用迭代器的优点   对于原生支持随机访问的数据结构(如tuple.list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值).但对于无法随机访问的数据结构(比

  • Python列表推导式与生成器用法分析

    本文实例讲述了Python列表推导式与生成器用法.分享给大家供大家参考,具体如下: 1. 先看两个列表推导式 def t1(): func1 = [lambda x: x*i for i in range(10)] result1 = [f1(2) for f1 in func1] print result1 def t2(): func2 = [lambda x, i=i: x*i for i in range(10)] result2 = [f2(2) for f2 in func2] pr

  • 简单了解python 生成器 列表推导式 生成器表达式

    生成器就是自己用python代码写的迭代器,生成器的本质就是迭代器. 通过以下两种方式构建一个生成器: 1.通过生成器函数 2.生成器表达式 生成器函数: 函数 def func1(x): x += 1 return x print(func1(5)) 生成器函数 def func1(x): x += 1 yield x g_obj = func1(5) print(g_obj.__next__()) 一个next对应一个yield. yield VS return return 结束函数,给函

  • Python列表推导式与生成器表达式用法示例

    本文实例讲述了Python列表推导式与生成器表达式用法.分享给大家供大家参考,具体如下: 和列表一样,列表推导式也采用方括号[]表示,并且用到了一个简写版的for循环,第一部分是一个生成结果列表元素的表达式,第二部分是一个输入表达式上的循环.阅读理解列表表达式的推荐做法是先从里面的for循环开始,向右查看是否有if条件,然后将推导式开始的那个表达式映射到每一个匹配的元素上去. >>> even_numbers = [x for x in range(10) if x%2 == 0] &g

  • 深入讲解Python中的迭代器和生成器

    在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了. 迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法.其中__iter__()方法返回迭代器对象本身:next()方法返回容器的下一个元素,在结尾时引发StopIteration异常. __iter__()和next()

  • python生成器推导式用法简单示例

    本文实例讲述了python生成器推导式用法.分享给大家供大家参考,具体如下: 1.生成器推导式是继列表推导式后的有一中python推导式,他比列表推导式速度更快,占用的内存也更少. 2.使用生成器对象时,可以根据需要将他转化为列表或者元组,也可以是哟个生成器对像__next__()方法或内置函数next()进行遍历,其具有惰性求值的特点,进行一次遍历后便不能再次方位内部元素,即访问一次立马清空生成器对象 >>> g = ((i+2)**2 for i in range(10)) >

  • 详解Python3中yield生成器的用法

    任何使用yield的函数都称之为生成器,如: def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成器包含yield语句,更简单点理解生成器就是一个迭代器. 使用yield,可以让函数生成一个序列,该函数返回的对象类型是"generator",通过该对象连续调用next()方法返回序列值. c = count(5) c.__next__() #python 3.4.3要

  • Python中的生成器和yield详细介绍

    列表推导与生成器表达式 当我们创建了一个列表的时候,就创建了一个可以迭代的对象: 复制代码 代码如下: >>> squares=[n*n for n in range(3)] >>> for i in squares:  print i   0 1 4 这种创建列表的操作很常见,称为列表推导.但是像列表这样的迭代器,比如str.file等,虽然用起来很方便,但有一点,它们是储存在内存中的,如果值很大,会很麻烦. 而生成器表达式不同,它执行的计算与列表包含相同,但会迭代的

  • Python列表推导式、字典推导式与集合推导式用法实例分析

    本文实例讲述了Python列表推导式.字典推导式与集合推导式用法.分享给大家供大家参考,具体如下: 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(list)推导式 字典(dict)推导式 集合(set)推导式 一.列表推导式 1.使用[]生成list 基本格式 variable = [out_exp_res for out_exp in input_

随机推荐