1.发现List中一个很神奇的现象:
l = [1,2,3]
l = l.append(4)
print l #结果为None
2.晚上又吃了一次list.append()的亏:
dic[2] #内容是 [2.3, [1, 2, 3, 4]]
tmp3 = copy.copy(dic.get(2)[1])
dic[3]=[1.34,tmp3.append(4)]
dic[3]#内容是[1.34, None]
分析了下,造成这种现象的原因是list.append()函数返回值为None,只是在list进行了改动。
在java中,stringBuilder2 = stringBuilder1.append('字符')是没有什么问题的,原因在stringBuilder1添加字符后,直接返回其引用,回想一下,似乎Java的此类函数似乎都是这种风格,所以对python中list的append返回为空很不习惯,这也难怪会出错。
3.python中的除法运算,在python
2.5版本中存在两种除法运算,即所谓的true除法和floor除法。当使用x/y形式进行除法运算时,如果x和y都是整形,那么运算的会对结果进行截
取,取运算的整数部分,比如2/3的运算结果是0;如果x和y中有一个是浮点数,那么会进行所谓的true除法,比如2.0/3的结果是
0.66666666666666663。另外一种除法是采用x//y的形式,那么这里采用的是所谓floor除法,即得到不大于结果的最大整数值