python推导式_python if 推导式-程序员宅基地

技术标签: python  

推导式可以快速生成一个列表、字典或其他需要的格式,还会减少代码量。

推导式的使用方法(以列表为例):

        1.推导式:
            a = [i for in xxx]
        2.推导式结合 if 条件进行过滤:
            a = [i for in xxx if 条件]
        3.推导式完整if:
            a = [ 条件成立的返回值 if 条件 else 条件不成立返回值  i for in xxx]

 1.普通推导式 

# -------------正常的写法-------------
a1 = []
for i in range(10):
    a1.append(i)
print(a1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


# ---------使用推导式的写法-----------
a2 = [i for i in range(10)]
print(a2)  
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 快速生成0-9的列表

2.推导式结合 if 条件进行过滤

# -------------正常的for循环加if判断-----------------
a1 = []
for i in range(10):
    if i%2==0: # 偶数
        a1.append(i)
print(a1)
# [0, 2, 4, 6, 8]

# ----------推导式加if判断(加在for条件后面)----------
a2 = [i for i in range(10) if i%2==0]
print(a2)
# [0, 2, 4, 6, 8]

3.推导式完整if

2里只有if过滤一次,那么如果还有else的条件呢?

else直接写在a2中的if后面,会报错,并且没有条件返回值。

格式:

        a = [ 条件成立的返回值 if 条件 else 条件不成立返回值  i for in xxx]

# -------------正常的for循环加if else-----------------
a1 = []
for i in range(10):
    if i%2==0: # 偶数
        a1.append(f"我是偶数{i}")
    else:
        a1.append(f"我是奇数{i}")
print(a1)
# ['我是偶数0', '我是奇数1', '我是偶数2', '我是奇数3', '我是偶数4', '我是奇数5', '我是偶数6', '我是奇数7', '我是偶数8', '我是奇数9']

# ---------------------------------------------------
# if 前面 是满足了if条件的返回值
# else 后面 是不满足if的另一个返回值
a2 = [f"我是偶数{i}" if i%2==0 else f"我是奇数{i}" for i in range(10)]
print(a2)
# ['我是偶数0', '我是奇数1', '我是偶数2', '我是奇数3', '我是偶数4', '我是奇数5', '我是偶数6', '我是奇数7', '我是偶数8', '我是奇数9']

4.字典推导式

字典推导式也同理,语法相似。只是字典为key&value需要注意

list1 = ['a', 'b', 'c']
dict1 = {index: value for index, value in enumerate(list1)}
print(dict1)  
# {0: 'a', 1: 'b', 2: 'c'}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48120964/article/details/129790079

智能推荐

光场深度估计(Light Field Depth Estimation)-程序员宅基地

文章浏览阅读1.8w次,点赞23次,收藏94次。本文将介绍光场领域进行深度估计的相关研究。In this post, I’ll introduce some depth estimation algorithms using Light field information. Here is some of the code.研究生阶段的研究方向是光场深度信息的恢复。再此做一些总结,以便于让大家了解光场数据处理的一般步骤以及深度估计的相关..._光场深度估计

CSS3 column 分栏-程序员宅基地

文章浏览阅读68次。column的布局形式还没有使用过,后续的bug和解决方案有待检验。columncolumn-count:number; 设置内容分为多少栏显示column-width:长度单位;设置每一栏的宽度而不设定元素的宽度column-gap:长度单位;设置多栏之间的间隔距离column-rule:宽度,颜色;在栏与栏之间增加一条间隔线。类似border.column-spa..._h5 column-span

在ArcGIS+Server里把屏幕像素点数所代表的距离转换为实际地理距离-程序员宅基地

文章浏览阅读495次。/*** @description 把屏幕像素点数所代表的距离转换为实际地理距离 * @author brian* @param mapScale地图比例尺 * @param pixelUnits屏幕像素个数 * @return double 实际地理距离 */public double ConvertPixelsToMapUnits(WebMa..._像素距离和实际距离转换

STM32开发系列之寄存器(二)GPIO口位带操作实现_gpiob->odr |=1<<6-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏8次。位带操作顾名思义就是可以单独对CPU寄存器某个位进行读写操作,采取这种方式,将会大大减少我们写代码的难度,不用像上篇博客那样进行与或运算和移位,降低了出错的可能性。如果之前有使用过8051单片机的话,应该体会过这种操作的好处。例如,在51单片机中,P1.0上挂了一个灯,我们想要他点亮,可以直接P1.0=0或者P1.0=1这样写,直接对P1端的某个IO口进行操作。但在STM32中并不允许这样操作,..._gpiob->odr |=1<<6

【C++】字符串(string)的使用_c++ string 子串-程序员宅基地

文章浏览阅读2.4k次,点赞5次,收藏22次。C++ 中,`std::string` 是用于处理字符串的标准库类。它提供了一系列成员函数和操作符,使得字符串的操作更加方便和灵活。_c++ string 子串

MySQL 慢查询-程序员宅基地

文章浏览阅读1.2w次,点赞7次,收藏41次。一、什么是慢查询慢查询,顾名思义,执行很慢的查询。有多慢?超过long_query_time参数设定的时间阈值(默认10s),就被认为是慢的,是需要优化的。慢查询被记录在慢查询日志里。慢查询日志默认是不开启的。如果需要优化SQL语句,就可以开启这个功能,它可以让你很容易地知道哪些语句是需要优化的。1️⃣show variables like 'slow_query_log';查询是否开启慢查询日志【开启慢查询sql:set global slow_query_log = 1/on;】【关闭慢查询sq_慢查询

随便推点

Python使用MySQL查询数据导出Excel-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏15次。Python系列之MySQL where in查询数据导出Excel最近接到需求,需要通过一条SQL查询出来的id,去过滤另外一条SQL的数据,听起来并不难,但是因为业务原因需要查询很多个环境,而且需要经常查询,所以想到通过程序来实现,开发环境MySQL 10.1.38-MariaDB-1~bionicPython3.7.8开发工具PyCharm2018.1SmartGit18.1Navicat15.0.28...

【Word及其他文本工具快捷键大全】_文字工具快捷键-程序员宅基地

文章浏览阅读2.7k次,点赞6次,收藏12次。整理由来由于大家日常难免用到Word等工具,由此,我整理了一份快捷工具大全,可以有效提高办公等效率。(部分资料度娘整理)具体内容(1)常见快捷键Ctrl + A:“全选”界面当前所有内容Ctrl + S:“保存”当前已经编辑的内容,一般可以有效防止内容“丢失”,很好用!Ctrl + C:“复制”已经选中的内容Ctrl + V:将已经复制的内容“粘贴”到另一编辑界面,常与上一个“复制”结合使用Ctrl + B:“加粗”已经选中的文本Ctrl + I:将选中的文字“斜体”化Ctrl + U_文字工具快捷键

OSG开发笔记(四):OSG不使用osgQt重写类嵌入Qt应用程序_osg开发笔记(四):osg不使用osgqt重写类嵌入qt应用程序-程序员宅基地

文章浏览阅读3.7w次,点赞4次,收藏11次。前面编译了osg库(没有带任何插件),本章节不依赖osgQt,使用osgQt的弊端是每次不能自定义消息,若要自定义消息则需求修改osgQt中源码,重新编译,所以此种方法灵活性较高。_osg开发笔记(四):osg不使用osgqt重写类嵌入qt应用程序

python学习笔记之tkinter中的label_python tkinter labels[i].config(image=none) 无法去除图片-程序员宅基地

文章浏览阅读1.3w次,点赞3次,收藏14次。from tkinter import *longtext='''多行 文本'''master = Tk()master.title("label学习")w0=Label(master,text=longtext)w0.pack()photo=PhotoImage(file="b.png")w=Label(master,image=photo)w.pack(_python tkinter labels[i].config(image=none) 无法去除图片

一阶电路中的时间常数_学电路原理,你得这么做-程序员宅基地

文章浏览阅读720次。如果你是学电气专业的话,电路原理是最基础最重要的一门课。学不好它,后面的模电、电机、电力系统分析、高压简直没办法学。对于这门课,你要想真正的领悟和掌握,奥秘就在于不能停止思考。而且我觉得这是最重要的一点。我以江辑光的《电路原理》为例(这本书编的相当不错)解释为何不能停止思考。电路几乎是第一本开始培养你工程师思维的书,它不同于数学物理,很多可以理论推导。而电路更多的是你的思考和不断累积的经验。在江的..._1/jwc 正弦

C语言学生成绩管理系统设计 《C语言程序设计》实训报告_c语言学生成绩管理系统设计报告-程序员宅基地

文章浏览阅读10w+次,点赞399次,收藏3.2k次。C语言学生成绩管理系统设计 《C语言程序设计》实训报告_c语言学生成绩管理系统设计报告

推荐文章

热门文章

相关标签