最近在网上看到一些Python的一些基本但是非常实用的操作。
多赋值:
a = b = c = 'www.lanol.cn'
print('a的值:'+a)
print('b的值:'+b)
print('c的值:'+c)
交换元素的值:
a = "我是a的值"
b = "我是b的值"
a,b = b,a
print('a:'+a)
print('b:'+b)
元素自操作:
a = 5
a +=1 #自加1
a -=1 #自减1
a /=2 #自除2
a *=2 #自乘2
a **=2 #自己的2次方
print(a)
使用三元操作符赋值:
三元操作符是 if-else 语句也就是条件操作符的一个快捷方式:
[表达式为真的返回值] if [表达式] else [表达式为假的返回值]
这里给出几个你可以用来使代码紧凑简洁的例子。下面的语句是说“如果 y 是 9,给 x 赋值 10,不然赋值为 20”。如果需要的话我们也可以延长这条操作链。
x = 10 if (y == 9) else 20
同样地,我们可以对类做这种操作:
x = (classA if y == 1 else classB)(param1, param2)
在上面的例子里 classA 与 classB 是两个类,其中一个类的构造函数会被调用.
下面是另一个多个条件表达式链接起来用以计算最小值的例子:
In [10]: def small(a,b,c):
...: return a if a<=b and a<=c else ( b if b<=a and b<=c else c)
...:
In [11]: small(1,0,1)
Out[11]: 0
In [12]: small(1,2,3)
Out[12]: 1
我们甚至可以在列表推导中使用三元运算符:
In [14]: [ m**2 if m > 10 else m**4 for m in range(20) ]
Out[14]:
[0,1,16,81,256,625,1296,2401,4096,6561,10000,121,144,169,196,225,256,289,324,61]
判断列表是否为空:
def test1():
arr1 = [1, 2, 3, 4, 5]
arr2 = []
# 不推荐
if len(arr1)!=0:
print("arr1 is not empty-len!")
if len(arr2)!=0:
print("arr2 is not empty-len!")
# 推荐
if arr1:
print("arr1 is not empty!")
if arr2:
print("arr2 is not empty!")
遍历列表,获取索引下标:
def test3():
l1 = [11, 22, 30, 41, 51]
# 不推荐
for i in xrange(0, 5):
print("%s->%s" %(i, l1[i]))
# 推荐
for i, v in enumerate(l1):
print("%s->%s" % (i, v))
字典列表生成式:
def test5():
dict1 = {1: "val1", 2: "val2", 3: "val3", 5: "val5"}
dict2 = {k*2: v for k, v in dict1.items()}
print(dict2)