【摘】人生苦短,每日python

python和它的字符串拼接

不懂效率的人,会这样拼接

>>> s = ‘‘
>>> for substring in [‘hello ‘, ‘world ‘]:
...  s += substring
...
>>> print(s)
hello world

python字符串是不可变的,拼接任意不可变序列都会生成一个新的序列对象。

即是说,每拼接一次,就要重新分配个空间,所以效率极低。

考虑效率的人,会这样拼接

>>> s = ‘‘.join([‘hello ‘, ‘world ‘])
>>>
>>> print(s)
hello world

join()的速度很快,但是可读性很差。

中庸的人,会这样拼接

>>> s = ‘%s%s‘ % (‘hello ‘, ‘world ‘)
>>>
>>> print(s)
hello world

已知字符串的数目,代码的性能也不是很重要,或者优化字符串拼接节省的开销很小时,可以试试format或%。


python和它的枚举enumerate

不会用枚举的人,写这样的代码:

>>> i = 0
>>> for e in [‘one‘, ‘two‘, ‘three‘]:
...     print(i, e)
...     i += 1
...
(0, ‘one‘)
(1, ‘two‘)
(2, ‘three‘)

会用枚举的人,写这样的代码:

>>> for i, e in enumerate([‘one‘, ‘two‘, ‘three‘]):
...     print(i,e)
...
(0, ‘one‘)
(1, ‘two‘)
(2, ‘three‘)

摘自 《Python高级编程》

原文地址:https://www.cnblogs.com/featherw/p/10300617.html

时间: 2024-07-30 08:00:30

【摘】人生苦短,每日python的相关文章

趣谈编程史第3期-人生苦短,不如Python

这是我制作的编程语言科普系列视频的第三期,博客根据视频文案整理而成,提供给有需要的朋友阅读或使用. 视频地址:https://www.bilibili.com/video/av86031488/  如果感兴趣可以观看视频,感谢博友 在编程语言这个竞争激烈 人才辈出的江湖 时常上演勾心斗角 尔虞我诈的狗血故事 各家编程语言的’言粉’ 也时常骂来骂去 尊己卑人 在这个鱼龙混杂的环境里 有这么一号人物 他出身寒门 名不见经传 养在深闺人未识 最初只是在不知名圈子里小有名气 但是因为天生丽质 惹人怜爱

人生苦短之Python迭代器

 迭代 在Python中,如果给定一个list或者touple,我们可以通过for循环来遍历,将值依次取出,这种遍历称为迭代. 在Python中是通过for...in..来进行遍历的,在Java中则是通过下标来遍历 for(int i;i<length;i++){},Python作为解释性语言,在语法上是十分简单的,可以遍历数组集合,也可以遍历字典.看下面的例子: for name in names: print(name) person = {'name': '张三', 'age': 14,

人生苦短之Python枚举类型enum

枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python中是如何实现的呢? 补充:很多初学者一下子不明白枚举是什么意思,比如我们有段程序很多地方需要用到12个月月份,可以将每个月份都定义出来使用: String Jan = "1月份",但是这样用起来很不好用,需要写12个,然后后续用的时候也不清晰明白,那么枚举类型就可以解决问题,它将这12个月

人生苦短之Python类的一二三

在Python中,类也是以class开头定义的.我们定义一个动物类,它有名字和年龄,在java变量有实例变量和局部变量,方法内的变量是局部变量,类里面的变量是实例变量.那么在Python中的类及其属性这些是如何定义使用的呢? class Animal(): pass 类的属性     我们知道类都是有属性的,在java中一般是在类中就定义了属性,而在python中是可以直接就给实例添加属性的. >>> a = Animal()>>> a.name = 'dog'>

每日python(6)

关于python第三方库的安装方法,现在大多都是直接从网上下载.tar.gz包,解压之后,里面包含setup.py ,然后直接在命令行里 python setup.py install即可 其他安装方式:详见 http://www.douban.com/group/topic/40892505/

人生苦短之Python的urllib urllib2 requests

在Python中涉及到URL请求相关的操作涉及到模块有urllib,urllib2,requests,其中urllib和urllib2是Python自带的HTTP访问标准库,requsets是第三方库,需要自行安装.requests是第三方库,可以想到在使用起来它可能是最方便的一个. urllib和urllib2       urllib和urllib2模块都是跟url请求相关的,但是提供的功能是不同的.我们常用的urllib2的请求方式: response = urllib2.urlopen(

人生苦短之Python多线程

#encoding=utf-8 import threading import time ''' python多线程并不是真正意义上的多线程,通常我们所说的多线程是多个线程同时执行某功能,而在python中 则是同一时间只有一个获得GIL的线程在跑,也就是GIL的存在使得python并不是真正意义上的多线程,特别是 在处理CPU密集型程序,但是在处理IO密集型程序时python多线程还是能发挥多线程的优势的,这是因为IO速 度相对于CPU来是很慢的(例如网络传输等).GIL(global int

人生苦短之Python发邮件

#coding=utf-8 import smtplib from email.mime.base import MIMEBase from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText ''' 一些常用邮箱发件服务器及端口号 邮箱 发件服务器 非SSL协议端口 SSL协议端口 163 smtp.163.co

人生苦短之Python文件的IO操作

在Python中也有涉及到文件的相关操作,从最简单的文件读取说起 文件读取 file = open('/Users/macbookpro/Desktop/使用教程.txt', 'r', encoding='utf-8') print(file.read()) file.close() 使用open打开一个文件,第一个参数是文件路径,第二个参数是操作模式,第三个参数是文件编码.'r'代表的意思是只读方式,只可以读取文件里的内容.那么还有哪些操作呢 以行读取 readline(),后面括号可以添加数