【python学习笔记】:5个高效编程技巧
01 交换变量
>>>a=3
>>>b=6
这个情况如果要交换变量在c++中,肯定需要一个空变量。但是python不需要,只需一行,大家看清楚了
>>>a,b=b,a
>>>print(a)>>>6
>>>ptint(b)>>>5
02 字典推导(Dictionary comprehensions)和集合推导(Set comprehensions)
大多数的Python程序员都知道且使用过列表推导(list comprehensions)。如果你对list comprehensions概念不是很熟悉——一个list comprehension就是一个更简短、简洁的创建一个list的方法。
>>> some_list = [1, 2, 3, 4, 5]
>>> another_list = [ x + 1 for x in some_list ]
>>> another_list
[2, 3, 4, 5, 6]
自从python 3.1 起,我们可以用同样的语法来创建集合和字典表:
>>> # Set Comprehensions
>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]
>>> even_set = { x for x in some_list if x % 2 == 0 }
>>> even_set
set([8, 2, 4])
>>> # Dict Comprehensions
>>> d = { x: x % 2 == 0 for x in range(1, 11) }
>>> d
{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}
在第一个例子里,我们以some_list为基础,创建了一个具有不重复元素的集合,而且集合里只包含偶数。而在字典表的例子里,我们创建了一个key是不重复的1到10之间的整数,value是布尔型,用来指示key是否是偶数。这里另外一个值得注意的事情是集合的字面量表示法。我们可以简单的用这种方法创建一个集合:
>>> my_set = {1, 2, 1, 2, 3, 4}
>>> my_set
set([1, 2, 3, 4])
而不需要使用内置函数set()。
03 计数时使用Counter计数对象
这听起来显而易见,但经常被人忘记。对于大多数程序员来说,数一个东西是一项很常见的任务,而且在大多数情况下并不是很有挑战性的事情——这里有几种方法能更简单的完成这种任务。
Python的collections类库里有个内置的dict类的子类,是专门来干这种事情的:
>>> from collections import Counter
>>> c = Counter( hello world )
>>> c
Counter({ l : 3, o : 2, : 1, e : 1, d : 1, h : 1, r : 1, w : 1})
>>> c.most_common(2)
[( l , 3), ( o , 2)]
04 漂亮的打印出JSON
JSON是一种非常好的数据序列化的形式,被如今的各种API和web service大量的使用。使用python内置的json处理,可以使JSON串具有一定的可读性,但当遇到大型数据时,它表现成一个很长的、连续的一行时,人的肉眼就很难观看了。
为了能让JSON数据表现的更友好,我们可以使用indent参数来输出漂亮的JSON。当在控制台交互式编程或做日志时,这尤其有用:
>>> import json
>>> print(json.dumps(data)) # No indention
{"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]}
>>> print(json.dumps(data, indent=2)) # With indention
{
"status": "OK",
"count": 2,
"results": [
{
"age": 27,
"name": "Oz",
"lactose_intolerant": true
},
{
"age": 29,
"name": "Joe",
"lactose_intolerant": false
}
]
}
同样,使用内置的pprint模块,也可以让其它任何东西打印输出的更漂亮。
05 解决FizzBuzz
前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:
写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
这里就是一个简短的,有意思的方法解决这个问题:
for x in range(1,101):
print"fizz"[x%3*len( fizz )::]+"buzz"[x%5*len( buzz )::] or x
06 if 语句在行内
print "Hello" if True else "World"
>>> Hello
相关文章:
【python学习笔记】:5个高效编程技巧
01 交换变量 >>>a3 >>>b6 这个情况如果要交换变量在c中,肯定需要一个空变量。但是python不需要,只需一行,大家看清楚了 >>>a,bb,a >>>print(a)>>>6 >>&g…...
IP多播技术详解
文章目录前言IP多播技术的相关基本概念IP多播地址和多播组在局域网上进行硬件多播IP多播地址和多播MAC地址映射关系在因特网上进行IP多播网际组管理协议IGMP多播路由选择协议前言 随着计算机网络的发展和个人计算机的普及,人们能够方便的在网络上畅游,进…...
华为OD机试真题Python实现【数组排序】真题+解题思路+代码(20222023)
🔥系列专栏 华为OD机试(Python)真题目录汇总华为OD机试(JAVA)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出解题思路核心知识点Python 代码实现代码运行结果版权说明</...
丹麦市政当局通过 NetIQ 身份和访问管理解决方案,提高安全合规性
丹麦市政当局通过 NetIQ 身份和访问管理解决方案,提高安全合规性 概览 公司:普华永道 行业:咨询 地点:丹麦 挑战 创建一个通用框架,以便丹麦市政当局可以无需内部专业知识的前提下利用高级身份和访问管理 使用的…...
内网渗透学习官方文档
内网渗透0x00 kerberos协议0x01 ntlm协议0x02 管道0x03 smb协议0x04 windows访问控制0x05 令牌窃取0x06 SPN扫描&kerberoast0x07 黄金票据0x08 白银票据0x09 MS140680x10 NTDS.DIT && sam0x11 NTLM Relay0x12 MS08-0680x13 CVE-2019-13840x00 kerberos协议 kerber…...
如何编写接口测试用例?
接口测试用例如何编写?下面简单给大家讲解一下。 接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。 接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是…...
代码随想录算法训练营第44天 || 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ
代码随想录算法训练营第44天 || 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ 完全背包 完全背包与01背包的区别在于每种物品都有无限件,可以多次放入背包。 我们回顾一下01背包的遍历顺序,其中内层遍历背包的过程要后序遍历,为什么…...
【Bug】SQL无法绑定由多个部分组成的标识符
文章目录问题原因解决拓展问题 执行sql报:无法绑定由多个部分组成的标识符 原因 取了别名却没用别名,如下面这些情况 select * from biz_production_order_work_detail temp where biz_production_order_work_detail.create_time>2023-02-13selec…...
Games102 学习笔记
Games 102 P2 数据拟合 拟合数据的好坏 分段线性插值函数yf1(x)yf_1(x)yf1(x),数据误差为0,只有C0C_0C0连续。光滑插值函数yf2(x)yf_2(x)yf2(x),数据误差为0,可能被Noice带歪,导致函数性质不好,预…...
知识图谱基本知识点以及应用场景
近两年来,随着Linking Open Data等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布。互联网正从仅包含网页和网页之间超链接的文档万维网(Document Web)转变成包含大量描述各种实体和实体之间丰富关系的数据万维网(Data Web)。在这…...
IDEA中常用的快捷键
IDEA中常用的快捷键 自动修正:ALT回车键 代码格式化:CTRLALTL 代码提示:CTRLALT空格 导入当前代码所需要的类:alt回车键 导入当前类中所需要的所有类:ctrlshifto 查看子类:ctrlh 查找类:ctrln …...
朗润国际期货招商:桥水基金四季度投资组合
桥水基金四季度投资组合 总持仓市值183.2亿美元;环比减少7.3% ishares标普500指数ETF:7.93亿占持仓4.33%环比1.14%宝洁:7.57亿占持仓4.13%环比-0.1%新兴市场core TEF-ishares:6.80亿占持仓3.71%环比0.47%强生:6.3亿占…...
Linux管道命令(pipe)全
目录 选取命令:cut、grep 传送门 排序命令:sort、wc、uniq 传送门 双向重定向:tee 字符转换命令:tr、col、join、paste、expand 传送门 划分命令:split 传送门 参数代换:xargs 传送门 关于减号…...
mybatis条件构造器(一)
mybatis条件构造器(一) 1 准备工作 1.1 建表sql语句(Emp表) SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CREATE TABLE emp (EMPNO int NOT N…...
车联网之电子围栏中ConnectStreamed应用【二十】
文章目录 1. 电子围栏中ConnectStreamed应用1.1 ConnectedStreams简介1.1.1 connect流说明1.1.2 connect流使用场景1.2 Broadcast+Connect+CoFlatmap+CoMap整合实战1.3 两点之间球面距离计算1.4 电子围栏中自定义对象实现CoFlatMap函数1. 电子围栏中ConnectStreamed应用 1.1 C…...
临时文件tempfile
临时文件tempfile 1.概述 安全地创建具有唯一名称的临时文件,以至于他们不会被那些想破坏或者窃取数据的人猜出是非常有挑战性的。tempfile 模块提供了几个安全地创建系统临时文件的方法。 TemporaryFile() 打开并返回一个未命名的临时文件, NamedTemp…...
vue3封装数值动态递增组件
vue3封装数值动态递增组件前言源码举个例子:前言 1)使用技术: vue3.2 Ts 2)组件接收参数: 参数类型意义是否可选valuenumber数值大小必填durationnumber递增动画持续时间(单位:s)…...
JavaWeb_RequestResponse
目录 一、概述 二、Request对象 1.Request继承体系 2.Request获取请求数据 ①获取请求行数据 ②获取请求头数据 ③获取请求体数据 ④获取请求参数 3.Request请求转发 三、Response 1.Response设置响应数据功能 ①响应行 ②响应头 ③响应体 2.请求重定向 3.路径问…...
C语言刷题——“C”
各位CSDN的uu们你们好呀,今天,小雅兰要巩固一下之前学过的知识,那么,最好的复习方式就是刷题啦,现在,我们就进入C语言的世界吧 从最简单的开始噢 完完全全零基础都能看懂 题目来源于牛客网 编程语言初学训…...
【刷题】搜索——BFS:城堡问题(The Castle)
目录题目代码(Flood Fill)代码(并查集)题目 题目链接 找出房间个数——>求连通块个数 最大房间——>求最大连通块 直接用flood fill算法 注意题目的输入,例如118211182111821,则代表有西、北、南墙…...
深度学习——torch相关函数用法解析
1. torch.ones() torch.ones(*sizes, outNone) → Tensor函数功能:返回一个全为1 的张量,形状由可变参数sizes定义。 参数: sizes (int…) – 整数序列,定义了输出形状 out (Tensor, optional) – 结果张量 例子: >>> …...
ubuntu 20使用kubeadm安装k8s 1.26
步骤 机器:4核8G,root账号,可访问互联网 1、更新apt apt-get update 2、安装一些基本工具 apt-get install ca-certificates curl gnupg lsb-release net-tools apt-transport-https 3、ifconfig 获取ip,hostname获取主机名&…...
低代码开发平台|制造管理-生产过程管理搭建指南
1、简介1.1、案例简介本文将介绍,如何搭建制造管理-生产过程。1.2、应用场景先填充工序信息,再设置工艺路线对应的工序;工序信息及工艺路线列表报表展示的是所有工序、工艺路线信息,可进行新增对应数据的操作。2、设置方法2.1、表…...
python对多个csv文件进行合并(表头需一致)
之前写过python对【多个Excel文件】中的【单个sheet】进行合并,参考:点我 之前也写过python对【多个Excel文件】中的【多个sheet】进行合并,参考:点我 今天再写一个python对多个csv格式的文件进行合并的小工具 但是大家切记&am…...
Salesforce Apex调用邮件模板
正常调用无模板:mail.setToAddresses(new List<String>{user.Email});//mail.setReplyTo(444298824qq.com);//mail.setCcAddresses(null);mail.setSenderDisplayName(EOP系统);mail.setSubject(EOP通知(待审批):您有未处理的…...
windows本地开发Spark[不开虚拟机]
1. windows本地安装hadoop hadoop 官网下载 hadoop2.9.1版本 1.1 解压缩至C:\XX\XX\hadoop-2.9.1 1.2 下载动态链接库和工具库 1.3 将文件winutils.exe放在目录C:\XX\XX\hadoop-2.9.1\bin下 1.4 将文件hadoop.dll放在目录C:\XX\XX\hadoop-2.9.1\bin下 1.5 将文件hadoop.dl…...
一文教你快速估计个股交易成本
交易本身对市场会产生影响,尤其是短时间内大量交易,会影响金融资产的价格。一个订单到来时的市场价格和订单的执行价格通常会有差异,这个差异通常被称为交易成本。在量化交易的策略回测部分,不考虑交易成本或者交易成本估计不合理…...
Leetcode—移除元素、删除有序数组中的重复项、合并两个有序数组
移除元素 此题简单,用双指针方法即可, 如果右指针指向的元素不等于val,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移; 如果右指针指向的元素等于 val&…...
面试(十)大疆 安全开发 C++1面
1. 在C++开发中定义一个变量,若不做初始化直接使用会怎样? 如果该变量是一个普通变量,则如果对其进行访问,会返回一个随机值,int类型不一定为0,bool类型也不一定为false 如果该变量为一个静态变量,则初始值都是一个0; 如果该变量是一个指针,那么在后续程序运行中很…...
短信链接跳转微信小程序
短信链接跳转微信小程序1 实现方案1.1 通过URL Scheme实现1.2 通过URL Link实现1.3 通过云开发静态网站实现2 实现方案对比3 实践 URL Schema 方案3.1 获取微信access_token3.2 获取openlink3.3 H5页面(模拟短信跳转,验证ok)4 问题小节4.1 io…...
北京赛车网站开发公司/网页代码
最近在一次部署配置服务器的过程中,部署完成后使用的时候发现磁盘空间不能满足需求需要扩容,于是就在服务器的硬盘位增加了几块硬盘,然后在Linux管理后台,格式化、挂载磁盘、磁盘分区。结果是操作完成后(服务器使用的是…...
国内设计网站公司网站/上海百度seo牛巨微
TreeMap是jdk中基于红黑树的一种map实现。HashMap底层是使用链表法解决冲突的哈希表,LinkedHashMap继承自HashMap,内部同样也是使用链表法解决冲突的哈希表,但是额外添加了一个双向链表用于处理元素的插入顺序或访问访问。 既然TreeMap底层使…...
通州个人做网站/网站设计培训
收集表单数据 在上网注册各种应用的时候,都离不开账号的注册,账号注册的信息也就是填写表单的数据都会被收集整理起来。例如用户的账号名称、账号密码、姓名、年龄等。这就涉及到了如何收集表单数据的问题。 在表单中常出现的有如下几种标签 1.<inpu…...
建立个人博客网站/seo查询 站长工具
成为伟大,影响伟大 领袖不会培养追随者,领袖培养下一代领袖。 作为第三代互联网创业者,今天的领导者们肩负着这样的时代使命。 1.激励员工全力以赴 杰克韦尔奇说,管理是控制,领导是激励。 作为伟大的领导者&#…...
广州网站开发公司排名/太原网站seo
UrlRewriter 是微软封装好了的一个URL重写组件。使用它可以让我节约很多自已开发的时间。 好了,开始讲述我的应用经验,这只是很菜鸟的经验,高手就不用看了。 第一步,请从此下载此组件。解压,把UrlRewriter.dll copy到…...
广州app网站建设/编程培训机构
目录 一,智行营救 T型路口 先序和后序 二,勇往直前 一,智行营救 最强大脑同款游戏,Taptap里面也有同款游戏。 (1.21) 为了节省篇幅,我后面一关只放一张图,起点用字母S标注。 &…...