1.用浅拷贝后修改数字,可以起到与原数据分离的效果
import copy origin = [1, 2, [3, 4]] #origin 里边有三个元素:1, 2,[3, 4] cop1=origin.copy() #cop1 和 cop2 看上去相同,但已不再是同一个object cop1[1]='6765765' print (cop1) print (origin) #把origin内的子list [3, 4] 改掉了一个元素,观察 cop1 和 cop2
2.用浅拷贝后修改子list,或者修改子list里面任何一个数据都不可以起到与原数据分离的效果
import copy origin = [1, 2, [3, 4]] #origin 里边有三个元素:1, 2,[3, 4] cop1=origin.copy() #cop1 和 cop2 看上去相同,但已不再是同一个object cop1[2][0]='6765765' print (cop1) print (origin) #把origin内的子list [3, 4] 改掉了一个元素,观察 cop1 和 cop2
3.用等号后修改数字,不可以起到与原数据分离的效果
import copy origin = [1, 2, [3, 4]] #origin 里边有三个元素:1, 2,[3, 4] cop1=origin #cop1 和 cop2 看上去相同,但已不再是同一个object cop1[1]='6765765' print (cop1) print (origin) #把origin内的子list [3, 4] 改掉了一个元素,观察 cop1 和 cop2
4.用等号后修改子list,或者修改子list里面任何一个数据都不可以起到与原数据分离的效果
import copy origin = [1, 2, [3, 4]] #origin 里边有三个元素:1, 2,[3, 4] cop1=origin #cop1 和 cop2 看上去相同,但已不再是同一个object cop1[2][0]='6765765' print (cop1) print (origin) #把origin内的子list [3, 4] 改掉了一个元素,观察 cop1 和 cop2
5.用deepcopy,随便修改,都可以起到与原数据分离的效果
import copy origin = [1, 2, [3, 4]] #origin 里边有三个元素:1, 2,[3, 4] cop1=copy.deepcopy(origin) #cop1 和 cop2 看上去相同,但已不再是同一个object cop1[1]='6765765' print (cop1) print (origin) #把origin内的子list [3, 4] 改掉了一个元素,观察 cop1 和 cop2
6.继续写一个list的乘法.如果
a=[0]*99 ,那么a里面数据都可以随意修改
a=[[0]]*99,那么a里面任何index的数据都永远相等,无论怎么修改.
7.python for else的坑
这里面else表示的是如果for的循环你使用break跳出的那么else不执行,否则必然执行else.如果你不写break,那么else语句就必然执行.