Arki 的每日 BUG 观察
41 subscribers
78 photos
1 video
3 files
228 links
分享每天写的bug
以前端为主
Download Telegram
#python
list.sort() 是原地排序,且永远返回 None
python
# wrong
listA = list(A).sort() # listA == None

# right
listA = list(A)
listA.sort()

# or
listA = sorted(list(A))
#python #小技巧
使用内建函数 zip 将多个数组打成元组
x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
list(zipped)
>>> [(1, 4), (2, 5), (3, 6)]
#python #tips
# python list 去重
py 数组同样没有自带去重函数,但它的去重更简单
#  先将数组转为无重复元素的 set 再转回 list
list(set(array)) # uniq
#python
http://blog.jobbole.com/42706/
Python 新手常犯错误(第一部分)
TL;DR
不要用一个可变的值作为默认值
>>> def foo(numbers=[]):
... numbers.append(9)
... return numbers
>>> foo()
[9]
>>> foo()
[9, 9]
>>> foo()
[9, 9, 9]

正确做法
def foo(numbers=None):
if numbers is None:
numbers = []
numbers.append(9)
return numbers
#python strip

python的 str.strip([chars]) 和其他语言的 trim 不同, strip 会去除字符串头尾的每个 chars 字符,由于不好解释,请查看以下例子

>>>'1122A'.strip('12')
'A' # 删去了字符串头部所有 ‘1’ 和 ‘2’

另外还有只用来去除开头字符的 lstrip 和只用来去除结尾字符的 rstrip

如果只是想要移除字符串头部的指定字符串应该尝试使用其他方法

s = 'StringToRemove'
if line.startswith(s):
return line[len(s):]
#python

python 中对 bytes 取反的正确姿势
b = bytes([~ b & 0xFF])


不进行 & 操作的话位数会太长
https://stackoverflow.com/questions/28361323/python3-byte-level-bit-operations