1、赋值 for 循环->一行代码
u=[1,2,3,4,5,6,7,8,9]
a=[]
for i in u:
if i>3:
a.append(i)
---------------------
a=[i for i in u if i>3] #一行搞定,这就是优雅的python!!
2、嵌套for循环
colors=['a','b','c']
sizes=[1,2,3,5]
u=[]
for i in colors:
for j in sizes:
u.append([i,j])
--------------------------------------
A=[(color,size) for color in colors for size in sizes]
3、多参数接收–> *文件名
可以用于接收参数,单个参数、多参数、甚至无参, 大大提升了函数的泛化性
a,b,*argx= range(5)
print(a,b,argx)
>>0 1 [2, 3, 4]
------------------------
a,b,*argx= range(3)
>>0 1 [2]
------------------------
a,b,*argx= range(2)
>>0 1 []
4、注意python 一切皆指针的思想!
weird_board=[['_']*3]*3
print(weird_board)
>>[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
weird_board[1][2]='0'
print(weird_board)
>>[['_', '_', '0'], ['_', '_', '0'], ['_', '_', '0']]
原因: [[’_’]*3]*3 使用的是 [’_’]*3指针, 只不过三个指针指向同一块地址。
解决:调用Copy 包,使用copy.deepcopy()
5、==与is 之间的选择
当变量与单例值之间对比时,应该使用is。 a == b
本质上是a._eq_(b),会再次调用降低性能。