python 列表生成式

python笔记21-列表生成式

前言

python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。
对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。

range()

1.一个连续的数字类型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成

# coding:utf-8# a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]b = range(1, 11)
print(b)  # 结果 range(1, 11)
print(type(b))
print(list(b))    # 转list

2.python3直接打印b会显示range(1, 11)对象,并不是直接显示应该列表,如果想显示列表,可以用list()转下

列表生成式

1.如果想对列表里面的数据进行运算后重新生成一个新的列表,如[11, 22, 33 ... 1010],按平常思维就是先定义一个列表c,然后for循环挨个运算,算完了再append添加到c,最后c就是新的列表了

# 对列表数平方b = range(1, 11)
c = []
for i in b:c.append(i*i)
print(c)# 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.接下来看看用列表生成式如何去实现

# 对列表数平方b = range(1, 11)
c = [x*x for x in b]
print(c)# 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表

带if判断

1.如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表

c = [1, 3, -3, 4, -2, 8, -7, 6]
d = []
for i in c:if i > 0:d.append(i)  # 添加到列表d
print(d)# 结果:[1, 3, 4, 8, 6]

2.接下来可以看看列表生成式,写出更加简洁优雅的代码,快速高效!

# 提取大于0的数
c = [1, 3, -3, 4, -2, 8, -7, 6]
d = [x for x in c if x > 0]
print(d)# 运行结果[1, 3, 4, 8, 6]

多个参数

1.前面列表生成式都只传一个参数x,如果有两个列表如何去运算呢?
a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]
如何得出c = ["a1", "b2", "c3", "d4", "e5"]

# coding:utf-8a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]# 多个参数列表生成式
c = [str(x)+str(y) for x, y in zip(b, a)]
print(c)# 结果:['a1', 'b2', 'c3', 'd4', 'e5']

2.列表生成式的语法是非常优雅的,学会了可以少写很多代码。理解起来也并不难,多联系几次就能熟练掌握了。

参考自https://www.cnblogs.com/yoyoketang/p/9274362.html

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

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

相关文章

php mysql grant_mysql grant命令详解_MySQL

bitsCN.comgrant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user%grant insert on testdb.* to common_user%grant update on testdb.* to common_user%grant delet…

python中yield的用法详解——最简单,最清晰的解释

首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。看做…

python matplotlib简单使用

一、简单介绍 Matplotlib是Python的一个绘图库,是Python中最常用的可视化工具之一。 二、安装方法 安装方法:pip install matplotlib 注意:安装matplotlib前需要先安装numpy才可以 三、基本绘图命令 1、plt.fig([num]) 在绘图过程中&a…

python窗体设计插件_Python 界面生成器 wxFormBuilder 的入门使用(wxPython的界面设计工具的初学笔记)...

环境,Win10,python3.7.3,wxPython 4.0.4,wxFormBuilder 3.91、准备一个窗体。点击wxformbuilder上方的标签“forms”,并点击标签下方的第一个类似窗体的图标“Frame”然后,下面就会出现一个窗体。但是现在还…

mysql配置性能_MySQL配置性能优化

下面配置的优化,可能影响比较大,可能可以显著提高读写性能。1、mysql一些主要配置项介绍:innodb_buffer_pool_size这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你…

用cmd编译c++程序

1、设置好环境变量(已安装vs) ①在计算机的系统环境变量--》用户变量--》path中添加 D:\VS15\VC\bin ②新建变量INCLUDE:D:\VS15\VC\include ③新建变量LIB:D:\VS15\VC\lib 2、利用cl编译c文件 打开cmd 输入c…

C++编译运行过程分析

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们…

mysql给用户授权最大_mysql 给用户授权

MySQL用户授权 GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user IDENTIFIEDBY "password" WITH GRANT OPTION 对用户授权 mysql>grant rights on database.* to userhost identified by &qu…

python插入排序_直接插入排序(python实现)

这篇博文用来介绍直接插入排序直接插入排序基本思想:每次将一个待排序的记录插入到已经排好序的数据区中,直到全部插入完为止直接插入排序算法思路:在直接插入排序中,数据元素分为了有序区和无序区两个部分,在这里我们…

STL1-函数模板

1、函数模板和普通函数区别 //普通函数可以进行自动类型转换&#xff0c; //函数模板必须精确类型匹配; //函数模板可以被重载;c优先考虑普通函数;#include<iostream> using namespace std; //函数模板-->产生模板函数-->调用函数 template<class T> T MyAd…

ruby 安装mysql_ruby安装mysql

ruby安装mysqlruby on rails安装mysql数据库1. 下载mysql软件http://www.mysql.cn/mysql中文官方网站下载安装软件&#xff0c;选择5.02. 安装mysql&#xff0c;设置默认字符集为utf-83. 下载mysql for ruby的驱动并安装http://rubyforge.org/搜索mysql&#xff0c;找到mysql -…

jupyter安装与迁移文件

1、安装 pip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple 2、测试安装成功 安装完后输入 jupyter notebook 出现一个jupyter网址&#xff0c;即证明安装成功 3、数据迁移 将之前的jupyter notebook产生的文件复制在python所安装的盘目录下。然…

修正的判定条件覆盖例题_语句覆盖、判断覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修正条件覆盖...

int function(bool a,bool b,boolc){intx;x0;if(a&&(b||c)){x1;returnx;}}1、语句覆盖(SC)选择足够多的测试数据&#xff0c;使得被测程序中的每条语句至少执行一次。测试用例&#xff1a;aT,bT,cT2、判断覆盖(DC)设计足够的测试用例&#xff0c;使得程序中的每个判定至…

STL2-类模板

1、类模板实现 函数模板在调用时可以自动类型推导 类模板必须显式指定类型 #include<iostream> using namespace std;template<class T> class Person { public:T mId;T mAge; public:Person(T id,T age){this->mAge age;this->mId id;}void Show(){cout…

STL3-MyArray动态数组类模板实现

注意 1、右值的拷贝使用 2、拷贝构造函数的使用 #include<iostream> using namespace std;template<class T> class MyArray{ public:MyArray(int capacity){this->mCapacity capacity;this->mSize 0;//申请内存this->pAddr new T[this->mCapac…

mysql udf提权hex_Mysql_UDF提权

Mysql_UDF提权作者&#xff1a;admin 发布于&#xff1a;2013-5-25 18:55 Saturday分类&#xff1a;MYSQLRoot权限一、上传udf.dll小于mysql5.1版本C:\\WINDOWS\\udf.dll 或C:\\WINDOWS\\system32\\udf.dll等于mysql5.1版本%mysql%\\plugin\\udf.dll 用 selectplugin_dir 查询…

STL4-类型转换

#include<iostream> using namespace std;class Building{}; class Animal{}; class Cat :public Animal {}; //Cat是Animal的子类//static_cast //用于内置的数据类型及具有继承关系的指针或者引用 void test01() {int a 97;//static_cast<要转换的类型>(转换的…

线程池写入mysql_用多线程写入数据库的问题(150分)

把 一少的程序稍加修改就可以多个线程处理一个文件了unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 class(TForm)Button1: TButton;procedure FormCreate(Sender: TObject);procedure Bu…

java对象排序_Java™ 教程(对象排序)

对象排序List l可以如下排序。Collections.sort(l);如果List包含String元素&#xff0c;它将按字母顺序排序&#xff0c;如果它由Date元素组成&#xff0c;它将按时间顺序排序&#xff0c;这是怎么发生的&#xff1f;String和Date都实现了Comparable接口&#xff0c;Comparable…

python argparse模块

argparse模块 argparse是python用于解析命令行参数和选项的标准模块&#xff0c;用于代替已经过时的optparse模块 使用步骤 import argparse # 1 导入模块&#xff0c;这个没什么说的 parser argparse.ArgumentParser() # 2 实例化一个对象&#xff0c;默认参数一堆&#…