Pythonic II
三元操作符
[表达式为真的返回值] if [表达式] else [表达式为假的返回值]
x = (classA if y == 1 else classB)(param1, param2)
交互环境下的’_’操作符
Python 控制台,不论何时我们测试一个表达式或调用一个方法,结果都会分配给一个临时变量:_(一个下划线)
>>> 2+ 1
3
>>> _
3
>>> print_
3
简化if语句
我们可以使用下面的方式来验证多个值:
if m in [1,3,5,7]:
而非:
if m==1 or m==3 or m==5 or m==7:
或者,对于in操作符我们可以使用’{1,3,5,7}’而不是’[1,3,5,7]’
四种反转字符串/列表的方式
- 翻转列表本身
testList = [1,3,5]
testList.reverse()
print(testList)
- 在一个循环中翻转并迭代输出
for element in reversed([1,3,5]):
print(element)
- 一行代码翻转字符串
"Test Python"[::-1]
- 使用切片翻转列表
[1,3,5][::-1]
在Python中使用枚举量
class Shapes:
Circle,Square,Triangle,Quadrangle=range(4)
使用*运算符(splat operator) 来unpack函数参数
def test(x,y,z):
print(x,y,z)
testDict = {'x':1,'y':2,'z':3}
testList = [10,20,30]
test(*testDict)
test(**testDict)
test(*testList)
x y z
1 2 3
10 20 30
找到列表中出现最频繁的数
test= [1,2,3,4,2,2,3,1,4,4,4]
print(max(set(test),key=test.count))
#-> 4
不适用循环构造一个列表
import itertools
test=[[-1,-2],[30,40],[25,35]]
print(list(list(itertools.chain.from_iterable(test)))
#-> [-1, -2, 30, 40, 25, 35]
在Python中实现一个真正的switch-case语句
def xswitch(x):
return xswitch._system_dict.get(x,None)
xswitch._system_dict={'files': 10,'folders': 5,'devices': 2}
print(xswitch('devices'))