首页 > 编程语言 >python推导式与海象运算符

python推导式与海象运算符

时间:2022-08-14 14:01:55浏览次数:58  
标签:count 海象 推导 python after 运算符 print

背景:介绍两种python用于语句优化的用法 一、推导式 1.推导式简介: Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。 支持:列表(list)、元组(tuple)、集合(set)、 字典(dict) 如原有的修改列表(list)内元素(数字)+1需要使用的循环语句:

#原有的修改列表(list)内元素(数字)+1
l1 = [1,3,5,7,9] for i in range(len(l1)): l1[i]+=1 print(l1)
查看运行结果: 如使用推导式,语句将更加简介   2.列表推导式:
#2.列表推导式:
list_before = [1,3,5,7,9]
list_after = [i+1 for i in list_before]
print(list_after)
查看运行结果:   3.元组推导式
#3.元组推导式:
tuple_before = (1,2,3,4,5)
tuple_after =tuple(i+1 for i in tuple_before)
print(tuple_after)
查看运行结果:   4.集合推导式:
#4.集合推导式:
set_before = {0,1,2,3,4}
set_after = {i+1 for i in set_before}
print(set_after)
查看运行结果:   5.字典推导式(修改字典的key与value):
#5.字典推导式
dict_befory = {"k1":1,"k2":2,"k3":3}
dict_after = {"test-"+x:dict_befory[x]+1 for x in dict_befory}
print(dict_after)
查看运行结果:   二、海象运算符(python3.8+) 1.概念: 海象运算符:=作为一项新奇的python语法,在最新发布的python3.8中被首次提出来。 海象运算符即一个变量名后跟一个表达式或者一个值,这个和赋值运算符 = 类似,可以看作是一种新的赋值运算符。 在合适的场景中使用海象运算符可以降低程序复杂性,简化代码   2.使用场景: (1)用于 if-else 条件表达式 (1.1)原有写法:
a = 0
if a < 15:
print("hello,walrus operator!")
查看运行结果: (1.2)海象运算符:
if a := 15 > 10:
print("hello,walrus operator!")
查看运行结果: (2) 用于 while 循环 (2.1)原有写法:
count = 5
while count:
print("hello,walrus operator!")
count -= 1
查看运行结果: (2.2)海象运算符:
count = 5
while (count := count - 1)+1: # 需要加1是因为执行输出前count就减1了
print("hello,walrus operator!")
查看运行结果: (3)用于列表推导式 (3.1)原有写法:
nums1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
count = 1
def f(x):
global count
print(f"f(x)函数运行了{count}次")
count += 1
return x ** 2
nums2 = [f(i) for i in nums1 if f(i) > 50]
print(nums2)
查看运行结果: (3.2)海象运算符:
nums1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
count = 1
def f(x):
global count
print(f"f(x)函数运行了{count}次")
count += 1
return x ** 2
nums2 = [j for i in nums1 if (j := f(i)) > 50]
print(nums2)
查看运行结果: 可以看出: 使用海象运算符时:三个数字满足列表推导式的条件,节省 3次的函数调用。当程序数据巨大的时候,这将起到提升性能的作用。  

标签:count,海象,推导,python,after,运算符,print
From: https://www.cnblogs.com/mrwhite2020/p/16585318.html

相关文章

  • Python示例——负数的位运算
    平时在coding的时候虽然会遇到位运算但一般也都是正数的位运算,今天突然见到了使用负数的位运算,对此十分好奇和困惑,为此做了下了解,于是有了此文。 给出一些位运算的例子:......
  • 【Python】【Pycharm】新建项目/工程/新环境/继承全局包/New environment using/inher
    1、不勾选inheritglobalsite-packages  2、【推荐】勾选inheritglobalsite-packages ......
  • 10大python加速技巧
    简介目前非常多的数据竞赛都是提交代码的竞赛,而且加入了时间的限制,这就对于我们python代码的加速非常重要。本篇文章我们介绍在Python中加速代码的一些技巧。可能不是很多......
  • Python的分子模拟动态促进DF Theory理论对二进制硬盘系统的适用性
    全文链接:http://tecdat.cn/?p=27993 原文出处:拓端数据部落公众号作者:LawrenceXi这是一个偏学术的项目。流体力学界对过冷液体(supercooledliquid)的认知还不完善,我的......
  • python基础之open函数和路径处理
    前言本次内容主要介绍文件处理open函数以及路径处理。一、open函数根据前面介绍的函数调用方式,调用open函数。#open函数调用open()TypeError:open()miss......
  • 用python进行统计分析(2)
    其他描述性统计量#方差np.var(df["wt"])#标准差np.std(df["wt"])#众数stats.mode(df["wt"])#偏度stats.skew(df["wt"])#峰度stats.kurtosis(df["wt"])#正态......
  • 研发工程师L1Python学习
    汉诺塔Description有三个立柱A、B、C。A柱上穿有大小不等的圆盘N个,较大的圆盘在下,较小的圆盘在上。要求把A柱上的圆盘全部移到C柱上,保持大盘在下、小盘在上的规律(可借助B......
  • 几行 Python 代码就可以提取数百个时间序列特征
    时间序列数据是随着时间的推移反复捕获的变量值,随着时间的推移可以产生一系列的按时间顺序索引的数据点。在时间序列中,数据具有自然的时间顺序,即一个变量在特定时间的值依......
  • 转:python表达式和语句的区别
    本文摘自:Python表达式和语句之间的区别 表达式是一个值,它的结果一定是一个Python对象。当Python解释器计算它时结果可以是任何对象。例如42,1+2,int(‘123’),range(10)等......
  • python中实现依据序列名称排序并输出
     001、(base)root@PC1:/home/test2#lsa.fastatest.py(base)root@PC1:/home/test2#cata.fasta##测试fasta文件>gene2mycAGCTGCCTAAGC......