手记
分享经验交流心得,学习前沿流行技术
-
如何优化Python占用的内存
概述 如果程序处理的数据比较多、比较复杂,那么在程序运行的时候,会占用大量的内存,当内存占用到达一定的数值,程序就有可能被操作系统终止,特别是在限制程序所使用的内存大小的场景,更容易发生问题。下面我就给出几个优化Python占用内存的几个方法。 说明:以下代码运行在Python3。 举个栗子 我们举个简单的场景,使用Python存储一个三维坐标数据,x,y,z。 Dict 使用Python内置的数据结构Dict来实现上述例子的需求很简单。 >>> ob = {'x':1, 'y':2, 'z':3} >>> x = ob['x'
2993浏览
6推荐
2评论
-
同样是Python,怎么区别这么大
发现问题上周,我的测试同事告诉我,你的用户名怎么还允许中文啊?当时我心里就想,你们测试肯定又搞错接口了,我用的是正则\w过滤了参数,怎么可能出错,除非Python正则系统出错了,那是不可能的。本着严谨的作风,我自己先测试一下,没问题看我怎么怼回去。可是当我测试,我就懵逼了,中文真TM都验证通过,不对啊,我以前也是这么过滤参数的,测试没问题啊?唯一的区别是现在用的是Python3。上网搜了一圈,发现没有一篇文章讲述Python2和Python3的正则在处理字符串是的区别,都是一视同仁,知道我去翻了一遍官方文档,才明白怎么回事。问题复现我们都知道,Python有个正则规则\w,几乎所有的网上博客文章都告诉你,这个规则匹配字母数字及下划线,但实际并不是这样:有Python2代码如下:~|⇒ pythonPython 2.7.10 (default, Aug 17 2018, 19:45:58) [GCC 4.2.1 Comp
4495浏览
1推荐
0评论
-
关于Python编码这一篇文章就够了
概述 在使用Python或者其他的编程语言,都会多多少少遇到编码错误,处理起来非常痛苦。在Stack Overflow和其他的编程问答网站上,UnicodeDecodeError和UnicodeEncodeError也经常被提及。本篇教程希望能帮你认识Python编码,并能够从容的处理编码问题。 本教程提到的编码知识并不限定在Python,其他语言也大同小异,但我们依然会以Python为主,来演示和讲解编码知识。 通过该教程,你将学习到如下的知识: 获取有关字符编码和数字系统的概念 理解编码如何使用Python的str和bytes 通过int函
3453浏览
4推荐
1评论
-
如何编写快速且线程安全的Python代码
概述 如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。 GIL概览 有如下代码: static PyThread_type_lock interpreter_lock = 0; /* This is the GIL */ 这行代码位于Python2.7源码ceval.c文件里。在类Unix操作系统中,PyThread_type_lock对应C语言里的mutex_t类型。在Python解释
2141浏览
0推荐
0评论
-
你应该使用Python3里的这些新特性
本文翻译自:http://datawhatnow.com/things-you-are-probably-not-using-in-python-3-but-should/ 原文作者:Vinko Kodžoman 概述 由于Python2的官方维护期即将结束,越来越多的Python项目从Python2切换到了Python3。可是,在实际的工作中,我发现好多人都是在用Python2的思维去写Python3的代码,Python3给我们提供了很多新的、很方便的特性,可以帮助我们快速的编写代码。 f-strings (3.6+) 在Python里面,我们经常使用format函数来格式化字符串,例如: user = "Jane Doe" actio
2799浏览
5推荐
0评论
-
Python数据结构
概述 数据结构是组织数据的方式,以便能够更好的存储和获取数据。数据结构定义数据之间的关系和对这些数据的操作方式。数据结构屏蔽了数据存储和操作的细节,让程序员能更好的处理业务逻辑,同时拥有快速的数据存储和获取方式。 在这篇文章中,你将了解到多种数据结构以及这些数据结构在Python中实现的方式。 抽象数据类型和数据结构 数据结构是抽象数据类型(ADT)的实现,通常,是通过编程语言提供的基本数据类型为基础,结合相应的代码来实现。 通常来说,数据结构分为两
3412浏览
2推荐
0评论
-
Ansibe 基本使用教程
概述 关于如何使用Ansible,主要分成两部分,Ansible命令行命令使用方法和如何对管理的主机进行分组,以便更好的找到被操作的机器。这两部分,对应到Ansible里的概念是Ad-hoc和Inventory。 Ansible Ad-hoc 什么是Ad-hoc 关于Ad-hoc的定义,摘自官方中文文档 (这其实是一个概念性的名字,是相对于写 Ansible playbook 来说的.类似于在命令行敲入shell命令和 写shell scripts两者之间的关系)... 如果我们敲入一些命令去比较快的完成一些事情,而不需要将这些执行的命令特别保存下来, 这
3420浏览
3推荐
0评论
-
Python里的那些坑
Python里的那些坑 Python是一门清晰简洁的语言,如果你对一些细节不了解的话,就会掉入到那些深不见底的“坑”里,下面,我就来总结一些Python里常见的坑。 列表创建和引用 嵌套列表的创建 使用*号来创建一个嵌套的list: li = [[]] * 3 print(li) # Out: [[], [], []] 通过这个方法,可以得到一个包含3个list的嵌套list,我们来给第一个list增加一个元素: li[0].append(1) print(li) # Out: [[1], [1], [1]] 通过输出的结果可以看初,我们只给第一元素增加元素,结果三
3188浏览
8推荐
0评论
-
Git各种错误操作撤销的方法
概述 在平时工作中使用git难免会提交一些错误的文件到git库里,这时候,撤销吧,怕把正确的文件删除了,不撤销重新改又很麻烦,下面,我就从提交的三个阶段,来讲解如何撤销错误的操作。 Git Add了一个错误文件 解决方法 这种情况一般发生在新创建的项目,执行命令: git add . 命令执行完后发现增加了错误的文件,比如Pycham自动生成的.idea文件夹。比如下图: 这时候,我想撤销add .idea这个操作,可以这么做: git reset filename #撤销指定的文件 git reset #撤销所有的文
7978浏览
14推荐
2评论