2.1.7可变类型与不可变类型

Python有两种内置的或是已经定义过的类型。

可变类型是指那些内容允许实时变更的,典型的可变类型是列表和字典:所有的列表(List)都有可变的方法比如list.append() or list.pop(),并且可以在适当的地方更改。字典和列表拥有一样的特点。

不可变类型不提供变更内容的方法。比如,变量x被置为6,它没有增长的方法。如果你需要加1,你需要创建一个新的对象。

my_list = [1, 2, 3]
my_list[0] = 4
print my_list # [4, 2, 3] <- The same list as changed

x=6
x=x+1 #Thenewxisanotherobject 

这种区别的结果之一就是可变类型不是稳定的,因此它们不能作为字典的key。

对可变的对象使用可变类型,对不可变的对象使用不可变类型,有助于澄清代码的意图。

例如,不可变的列表对应的就是元组。创建一个(1,2)的元组。元组创建以后就不能再更改,并且可以作为字典的键。

让新手较为惊讶的Python的特点之一是 string是种不可变的数据类型。这意味着连接一个string的各个部分时,构造一个可变的list将会使比较效率的做法,然后用join方法把各个部分粘合在一起。需要注意的是,列表生成器比循环调用append()方法要更加的效率。

Bad 

# create a concatenated string from 0 to 19 (e.g. "012..1819")

nums = ""
for n in range(20):

nums += str(n) # slow and inefficient

print nums

Good 

# create a concatenated string from 0 to 19 (e.g. "012..1819")

nums = []
for n in range(20):

nums.append(str(n))
print "".join(nums) # much more efficient

Best 

# create a concatenated string from 0 to 19 (e.g. "012..1819")

nums = [str(n) for n in range(20)]

print "".join(nums

最后要说的一点就是string使用join()并不总是最好的。如果你从一系列已经定义好的字符串中创建一个新字符串,使用加号事实上还是挺快的。但是在以上的那种情况或者你向一个已经存在的字符串添加字符串,那么使用jion()将是较好的方法。

foo = ’foo’
bar = ’bar’

foobar = foo + bar # This is good
foo += ’ooo’ # This is bad, instead you should do:foo = ’’.join([foo, ’ooo’])

注意:除了join方法你也可以用格式化字符串来连接定义好的字符串,但是在Python3中%操作符将会被str.format()替代。


foo = ’foo’
bar = ’bar’

foobar = ’%s%s’ % (foo, bar) # It is OK
foobar = ’{0}{1}’.format(foo, bar) # It is better
foobar = ’{foo}{bar}’.format(foo=foo, bar=bar) # It is best 

2.1.8 Vendorizing Dependencies


2.1.9 Runners


2.1.10 Further Reading

http://docs.python.org/2/library/
http://www.diveintopython.net/toc/index.html 



weixin151云匹面粉直供微信小程序+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
weixin295微信小程序选课系统+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值