python_bugs - JasonWayne/personal-wiki GitHub Wiki
对str的操作
s = 'abc\001abc\001'
# false usage
s.rstrip('\001')
print s
# you should
s = s.rstrip('\001')
print s
从list中删去元素
original_list = [1, 2, 3, 4, 5]
a = original_list
b = original_list
original_list.remove(1)
print a
print original_list
# 总结:a和originallist指向同一个list,删去一个元素后,两者都改变
original_list = [x for x in original_list if x > 3]
print original_list
print a
# 总结:这里的originallist只是指向了一个新的list对象,并没有改变原来的list
a[:] = [x for x in a if x > 3]
print a
print b
# 成功改变了原来的list,达到了remove一样的效果
# 详细解释可见:<http://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python>中Alex Martelli的答案