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

列表解析——用来动态地创建列表

[expr for iter_var in iterable if cond_expr]

例子一:

map(lambda x: x**2, range(6))
[0, 1, 4, 9, 16, 25]
[x**2 for x in range(6)]
[0, 1, 4, 9, 16, 25]

列表解析式可以取代内建的map()函数以及lambda,而且++效率更高++。

例子二:

seq = [11, 10, 9, 8, 7, 6]
filter(lambda x: x % 2, seq)
[11, 9, 7]
[x for x in seq if x % 2]
[11, 9, 7]

例子三:

找出文本中最长的词

# 第一个最长的词
longest = ''
for word in text:
 if len(word) > len(longest):
  longest = word
#所有最长的词
maxlen = max(len(word) for word in text) # 生成器表达式
[word for word in text if len(word) == maxlen] #链表推导式

不足:列表解析得一个不足就是必要生成所有数据,用于创建整个列表。这可能对有大量数据得迭代其有负面效应。

++解决方法++:生成器表达式,通过结合列表解析和生成器解决了这个问题。

嵌套列表推导式

例一

all_data = [[1,3,5,7,9],
   [2,4,6,8,10]]
result = []
for nums in all_data:
 temp_num = [num for num in nums if num >= 5]
 result.extend(temp_num)

嵌套列表推导式

result = [num for nums in all_data for num in nums if num >= 5]

推导式中for的部分是按嵌套顺序排列的。

例二

some_tuples = [(1,2,3), (4,5,6), (7,8,9)]
flattened = [x for tup in some_tuples for x in tup]
flattened
[1,2,3,4,5,6,7,8,9]

以上这篇基于Python列表解析(列表推导式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

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

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

  • python 列表推导式使用详解

    所谓的列表推导式,就是指的轻量级循环创建列表. 基本使用方式 # 创建一个0-10的列表 a = [x for x in range(11)] print(a) """ 输出结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] """ 上面的列表推导式等价于下面,只是代码非常简化. a = [] for x in range(10): a.append(x) 在循环的过程中使用if # 创建一个1-10之间偶数的列表 a = [x

  • 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] # 将多维数组转换

  • 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学习笔记之列表推导式.分享给大家供大家参考,具体如下: 列表推导式 列表推导式可以快速简练地创建列表 之前的复杂写法: capitalized_cities = [] for city in cities: capitalized_cities.append(city.title()) 简化后的写法: capitalized_cities = [city.title() for city in cities] 由此可见:借助列表推导式,我们可以使用 for 循环用一步创

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

  • 基于Python列表解析(列表推导式)

    列表解析--用来动态地创建列表 [expr for iter_var in iterable if cond_expr] 例子一: map(lambda x: x**2, range(6)) [0, 1, 4, 9, 16, 25] [x**2 for x in range(6)] [0, 1, 4, 9, 16, 25] 列表解析式可以取代内建的map()函数以及lambda,而且++效率更高++. 例子二: seq = [11, 10, 9, 8, 7, 6] filter(lambda x

  • Python学习小技巧之列表项的推导式与过滤操作

    本文介绍的是关于Python中列表项的推导式与过滤操作的相关内容,分享出来供大家参考学习,下面来一起看看吧: 典型代码1: data_list = [1, 2, 3, 4, 0, -1, -2, 6, 8, -9] data_list_copy = [item for item in data_list] print(data_list) print(data_list_copy) 输出1: [1, 2, 3, 4, 0, -1, -2, 6, 8, -9] [1, 2, 3, 4, 0, -1

  • 基于Python实现将列表数据生成折线图

    目录 前言 代码 代码说明 验证效果 前言 本文提供python将列表数据画图的样例代码.主要是给自己的记录,顺便分享一下.主要使用到的库是:pandas.matplotlib. 代码 下面直接发一下样例代码. #!/user/bin/env python # coding=utf-8 """ @project : csdn @author : 剑客阿良_ALiang @file : draw_pic.py @ide : PyCharm @time : 2022-03-23

  • Python简洁优雅的推导式示例详解

    前言 推导式是从一个或者多个迭代器快速创建序列的一种方法.它可以将循环和条件判断结合,从而避免冗长的代码.推导式是典型的 Python 风格 Python语言有一种独特的推导式语法,相当于语法糖的存在,可以帮助你在某些场合写出较为精简酷炫的代码.但没有它,也不会有太多影响.Python语言有几种不同类型的推导式. 1. 列表推导式 列表推导式是一种快速生成列表的方式.其形式是用方括号括起来的一段语句,如下例子所示: lis = [x * x for x in range(1, 10)] prin

  • Python全栈之推导式和生成器

    目录 1. 推导式 2. 推导式练习 3. 集合_字典推导式 4. 生成器 4.1 生成器表达式 4.2 生成器函数 5. 小练习 总结 1. 推导式 # ### 推导式 : 通过一行循环判断遍历出一些列数据的方法叫做推导式 """ 语法: val for val in iterable """ # 1.推导式基本语法 lst = [] for i in range(1,51): lst.append(i) print(lst) # 改写推导式

  • 什么是python的列表推导式

    乍一看到列表推导式你可能会感到疑惑.它们是一种创建和使用列表的简洁方式.理解列表推导式是有用的,因为你可能在其他人的代码里看到列表推导式.下面来了解下列表推导式吧. 数字列表的推导式 回顾之前学过的知识,我们可以创建一个包含前10个数字的列表,如下所示: squares = [] for number in range(1,11): new_square = number**2 squares.append(new_square) for square in squares: print(squ

  • Python数据类型之列表和元组的方法实例详解

    引言 我们前面的文章介绍了数字和字符串,比如我计算今天一天的开销花了多少钱我可以用数字来表示,如果是整形用 int ,如果是小数用 float ,如果你想记录某件东西花了多少钱,应该使用 str 字符串型,如果你想记录表示所有开销的物品名称,你应该用什么表示呢? 可能有人会想到我可以用一个较长的字符串表示,把所有开销物品名称写进去,但是问题来了,如果你发现你记录错误了,想删除掉某件物品的名称,那你是不是要在这个长字符串中去查找到,然后删除,这样虽然可行,那是不是比较麻烦呢. 这种情况下,你是不是

  • Python序列的推导式实现代码

    推导式comprehensions(又称解析式),是Python的一种独有特性. 推导式是可以从一个数据序列构建另一个新的数据序列(的一种结构体). Python中共有三种推导,在Python2和3中都有支持: 列表推导式 字典推导式 集合推导式 1.列表推导式 作用:用一个表达式创建一个有规律的列表或控制一个有规律列表. 列表推导式又叫列表生成式. (1)快速体验 需求:创建一个0-10的列表. while循环实现 # 1. 准备一个空列表 list1 = [] # 2. 书写循环,依次追加数

  • 一篇文章搞懂python混乱的切换操作与优雅的推导式

    前言 因为工作中不怎么使用python,所以对python的了解不够,只是在使用的时候才去学,在之前的几个例子中几乎没使用什么python的特有语法,本着完成任务优先的原则也没有深入,但是在阅读别人的代码的时候发现有些特有语法不是很熟悉,搞不清代码的真正意思,今天就搞清楚切片和推导式的使用,OK.我们开始吧 记忆点:正向的时候第一个是0,负向的时候第一个是-1,可以把列表当做一个换,正向的是1 ,负向的 是-1,0 是中间点 1.混乱的切片操作 一个完整的切片表达式包含两个":",用于

  • Python中的列表及其操作方法

    目录 一.列表简介 二.访问列表元素 三.修改.添加和删除列表元素 1.修改列表元素 2.在列表中添加元素 3.从列表中删除元素 四.对列表元素排序 五.确定列表长度 六.遍历列表 七.创建数值列表 1.函数range()的使用 2.创建数字列表 3.列表解析 4.处理数字列表的函数应用 八.切片 九.元组 前言: 本文的主要内容是介绍Python中的列表及其方法的使用,涉及到的方法包括对列表元素进行修改.添加.删除.排序以及求列表长度等,此外还介绍了列表的遍历.数值列表.切片和元组的一些操作,

随机推荐