python列表的表示形式_python 列表推导式

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 inli]6

7 print [x**2 for x in li if x>5]8

9 print dict([(x,x*10) for x inli])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 inrange(len(vec))]17 printsq18

19 print [x*y for x in [1,2,3] for y in [1,2,3]]20

21 testList = [1,2,3,4]22 defmul2(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux sh 编程,Linux shell 编程入门

shell 编程概念(1) shell是一种命令行解释器,外壳有很多种类(2) shell 看成是Linux内核和用户沟通的桥梁,用户默认不能直接操作内核(3)可以通过shell外壳去操作,用户指令传递给shell,传递给Linux内核,内核接受去处理(4…

云科技网络验证源码_面向虚拟化架构和容器云的开源安全工具

随着云和虚拟技术发展,docker容器的使用越来越流行和方便。有很多企业已经把基础架构由传统实体机转移到了虚拟机化架构,基于公有云、私有云以及容器云构建在线服务。与容器相关的安全性对变得越来越重要。与传统的安全性方法相比,虚拟化架构…

linux ubuntu 安装yum,ubuntu使用yum安装软件问题

其实ubuntu是不应该用yum来管理软件安装的,只是后来才发现的,这里记录一下尝试的过程。一开始是想把windows桌面上的文件拖到xshell登录的ubuntu的目录中,但是没成功,参考https://blog.csdn.net/liuao107329/article/details/4999…

kali linux 桌面消失_kalilinux系统设置不见了的解决方案

kalilinux的系统设置不见了是由于删除软件或者错误配置导致的,解决方法是重新安装桌面环境。下面我给出几个不同桌面环境。KDE桌面1.KDE Plasma Desktop (最小化的等离子桌面)安装:apt-get install kali-defaults kali-root-login desktop-base kde-plas…

linux异步实现原理,Android异步处理四:AsyncTask的实现原理

分析:在分析实现流程之前,我们先了解一下AsyncTask有哪些成员变量。privatestaticfinalintCORE_POOL_SIZE 5;//5个核心工作线程privatestaticfinalintMAXIMUM_POOL_SIZE 128;//最多128个工作线程privatestaticfinalintKEEP_ALIVE 1;//空闲线程的超时时间…

ue4集合类型_UE4项目问题集合

debugeditor模式下,在LoadPackage过程中crash,vs报出Stack overflow的错误这是由于Package层数过多,vs栈不够用导致的。而ue4用UBT导致不能直接修改项目的栈大小。之前项目后期就因为这个崩溃导致大家没法再用debug模式进行开发。直接的解决办…

mysql5.7 for linux7,大道浮屠诀---mysql5.7.28 for linux安装

环境:redhat6.5安装RMP包的具体操作如下:1、如有mariadb,先卸载rpm -qa |grep mariadbrpm -qa |grep mysql*rpm -e --nodeps xxxxxx (卸载查询到的rpm包)2、安装新的mysql5.7.28,解压安装包tar -xvf mysql-5.7.28-1.el6.x86_64.rpm-bundle.t…

python中提供怎样的内置库、可以用来创建用户界面_使用外部GUI库在Autodesk中创建用户界面可能会...

我不确定这是否有关联,但一些谷歌搜索发现PyQt在玛雅内部非常流行。您可以尝试使用here或here(用源代码解释了here)通过Maya创建一个新的线程循环并在其中执行。似乎Maya包含了一个模块,用于设置新的线程对象,其中包含一个QApplication&#…

做raid会损坏linux文件吗,如何从损坏的RAID系统挂载磁盘?

我有一个可怕的情况,我必须在救援的Debian Linux中从损坏的RAID系统中恢复数据。我只想以只读方式将它们全部挂载到/ mnt / rescue,以便能够将VMWare GSX映像复制到另一台计算机上,并稍后将它们迁移到ESXi。相关命令的输出如下。fdisk -lDisk…

flutter字体不跟随系统_Flutter自定义字体无法加载

SOLVED :我仍然不确定问题是什么,但我通过简单地创建一个新的Flutter项目,在新项目中设置字体,然后将我的.dart文件粘贴到新项目中来修复它 . 即使一切都完全相同(据我所知),它运作良好 . 去搞清楚 .我试图在我的应用程…

c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼if(s->data.coef!0.0){s->data.expnp->data.expn;r->nexts;rs;}pp->next;qq->next;break;case 1:s->data.coefq->data.coef;s->data.expnq->data.expn;r->nexts;rs;qq->next;break;}//switch}…

一维数组kmeans聚类c语言,一维数组的 K-Means 聚类算法理解

刚看了这个算法,理解如下,放在这里,备忘,如有错误的地方,请指出,谢谢需要做聚类的数组我们称之为【源数组】需要一个分组个数K变量来标记需要分多少个组,这个数组我们称之为【聚类中心数组】及一…

ktor框架用到了netty吗_Ktor-构建异步服务器和客户端的 Kotlin 框架

软件简介Ktor 是一个使用 Kotlin 以最小的成本快速创建 Web 应用程序的框架。Ktor 是一个用于在连接系统(connected systems)中构建异步服务器和客户端的 Kotlin 框架。它由 Kotlin团队创建,因此,它充分利用了 Kotlin 的语言特性,为开发者提供…

c语言根据图片轮廓图,c语言通过opencv实现轮廓处理与切割

c语言通过opencv实现轮廓处理与切割发布时间:2020-10-14 11:00:33来源:脚本之家阅读:89作者:Farmwang注意在寻找轮廓时要选择中寻找外层轮廓RETR_EXTERNAL#include "opencv/cv.h"#include "opencv/highgui.h"…

多层协议解析 c语言,基于DPI的应用层协议书解析.doc

专业资料精心整理摘要随着互联网在中国的迅速发展,全国各大网络运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长,这使得网络管理的要求和难度都大大提高。因此,网络运营…

r4900g3系统安装linux_H3C UniServer R4900 G3服务器NVMe硬盘配置阵列方法以及相关操作...

一.配置NVMe硬盘的前期准备1. 安装Intel NVMe VROC 秘钥模块,该选件全称为H3C-RS3M1NVS-Intel NVMe VROC模块是一个硬件安装到主板上的NVMe SSD VROC模块接口上。Intel NVMe VROC 秘钥模块一共有如下三个版本:标准版:支持创建RAID 0、RAID 1和…

员工任务管理系统c语言,C语言职工信息管理系统课程设计任务书.docx

C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。要求:设计一个职工信息管理系统,使之能提供以下功能:…

android 判断 string 是否是字母数字,Android中判断字符串中必须包含字母或者数字...

public static boolean isLetterDigit(String str){boolean isDigit false;//定义一个boolean值,用来表示是否包含数字boolean isLetter false;//定义一个boolean值,用来表示是否包含字母for(int i0 ; iif(Character.isDigit(str.charAt(i))){ //用cha…

server 群辉emby_群晖容器中搭建支持硬件编码的Emby Server教程及注意事项

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我装的ubt20,intel显卡已经GVT-t直通给群晖虚拟机,再映射给EMBY的docker了,权限什么都给了,命令测试都正常一播放就只会选择软解,CPU100%,不知道怎么回事rootd…

笛卡尔心形函数表达式_如何用几何画板画笛卡尔心形函数

七夕节是个浪漫的节日,利用几何画板这个强大的绘图软件也可以对心爱的人表示!笛卡尔心形线像极了人的一颗心,用来表达爱意再好不过了。本文我们来介绍具体步骤如下:1.新建参数。右键绘图区空白处,“新建参数”&#xf…