python极简讲义(张玉宏著)的几处补充说明

首先需要说明,从本书得到很多启示,下面的补充属于讨论和思考的范畴。

关于多变量赋值的描述

原书第180页,第五章5.2.1.2中描述
a,b = b, a+b
的等价代码是
a = b
b = a + b
这段代码只能说是意会,但不准确,也不能用于实际编程。

a =1 
b = 2
a,b = b, a+b
print(a,b)

aa = 1
bb = 2
aa = bb
bb = aa +bb
print(aa,bb)

c = 1
d =2 
e = c
c = d
d = e + d
print(c,d)

运行结果
2 3
2 4
2 3

也就是说,a,b = b, a+b的好处不止在于两行变一行,而且是节省了一个中间变量。所以 c,d,e的代码才是反映了真正等价关系的代码。

第2章 图2-16的另一种思考

alist = [1,3,3,5,7,7]
adict = {k:1        for k in alist}
print(list(adict))

运行结果
[1, 3, 5, 7]

第2章 2.6的第4个思考题的参考

names = ['bob','Bob','TOM','tom','Tom']
aset = [n.lower().title() for n in names]
print(list(set(aset)))

运行结果
[‘Bob’, ‘Tom’]

第2章 2.6最后一个思考的参考

names = ['bob','Bob','TOM','tom','Tom']
adict = {}
for k in names:
    adict[k.lower().title()] = adict.get(k.lower().title(),0) +1
    
print(adict)

运行结果
{‘Bob’: 2, ‘Tom’: 3}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值