Python常用用法总结_自用
Oct 28, 2014
#1. 逆转字符串的三种方法
##1.1. 模拟C++中方法, 定义一个空字符串来实现
通过设置一个空字符串, 然后讲参数中的字符串从后往前遍历, 使用字符串的加法合并为新的字符串
1 | def reverse(text) : |
##1.2. 使用切片法
这个是Python中的一个特性, 切片可以取负值,这是采用切片的方法,设置步长为-1,这样就实现了反过来排序。
1 | def reverse_1(text) : |
##1.3. 使用列表
采用列表的reverse方法,先将text转换为列表,然后通过reverse方法反转,然后在通过join连接为字符串。
1 | def reverse_2(text) : |
#2. 使用reduce
使用匿名函数和reduce()
1 | def reverse_3(text) : |
#3. 遍历字典的四种方法
1 | dict={"a":"apple","b":"banana","o":"orange"} |
#4. 遍历list的三种方法
1 | for key in lst : |
#5. 字典排序的方法
- 字典按照value的值从大到小的顺序来排序(
默认从小到排序)。
1 | dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0} |
下面我们分解下代码
print dic.iteritems() 得到[(键,值)]的列表。
然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。
- 对字典按键(key)排序:
1 | dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0} |
#6. 子类和父类
- 子类构造函数调用父类的初始化构造函数
1 | class A(object) : |
- 子类调用父类的
同名函数
1 | super().fuleifunction() |
#7. 更灵活的参数传递方式
1 | func2(a=1, b=2, c=3) #默认参数 |
在变量前加上星号前缀(*),调用时的参数会存储在一个 tuple()对象中,赋值给形参。在函数内部,需要对参数进行处理时,只要对这个 tuple 类型的形参(这里是 args)进行操作就可以了。因此,函数在定义时并不需要指明参数个数,就可以处理任意参数个数的情况。
1 | def calcSum(*args): |
python的中参数可以多种形式进行组合, 在混合使用时,首先要注意函数的写法,必须遵守:
- 带有默认值的形参(
arg=)须在无默认值的形参(arg)之后 - 元组参数(
*args)须在带有默认值的形参(arg=)之后 - 字典参数(
**kargs)须在元组参数(*args)之后
在函数被调用时,参数的传递过程为:
- 按顺序把无指定参数的实参赋值给形参
- 把指定参数名称(arg=v)的实参赋值给对应的形参
- 将多余的无指定参数的实参打包成一个 tuple 传递给元组参数(*args)
- 将多余的指定参数名的实参打包成一个 dict 传递给字典参数(**kargs)
#8. lambda 表达式
lambda 表达式可以看做一种匿名函数
lambda 表达式的语法格式:
lambda 参数列表: 表达式 #参数列表周围没有括号,返回值前没有 return 关键字,也没有函数名称
1 | def fn(x): |
- 分析
- fn(2)调用后, 相当于
a = lambda y: 2 + y, 然后a(3)被调用时.
相当于print lambda y: 2 + 3