本文摘自php中文网,作者伊谢尔伦,侵删。
这篇文章主要介绍了收藏的一些Python常用方法和技巧,本文讲解了逆转字符串的三种方法、遍历字典的四种方法、遍历list的三种方法、字典排序的方法等Python常用技巧和方法,需要的朋友可以参考下1. 逆转字符串的三种方法
1.1. 模拟C++中方法, 定义一个空字符串来实现
通过设置一个空字符串, 然后讲参数中的字符串从后往前遍历, 使用字符串的加法合并为新的字符串
1 2 3 4 5 6 7 | def reverse(text) :
str = ''
index = len(text) - 1
while index >= 0 :
str += text[index]
index -= 1
return str
|
1.2. 使用切片法
这个是Python中的一个特性, 切片可以取负值,这是采用切片的方法,设置步长为-1,这样就实现了反过来排序。
1 2 | def reverse_1(text) :
return text[::-1]
|
1.3. 使用列表
采用列表的reverse方法,先将text转换为列表,然后通过reverse方法反转,然后在通过join连接为字符串。
1 2 3 4 | def reverse_2(text) :
temp = list(text)
temp.reverse()
return '' .join(temp)
|
2. 使用reduce
使用匿名函数和reduce()
1 2 3 | def reverse_3(text) :
return reduce(lambda x, y : y + x, text)
print reverse_3( "Hello" )
|
3. 遍历字典的四种方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | dict={ "a" : "apple" , "b" : "banana" , "o" : "orange" }
print "##########dict######################"
for i in dict:
print "dict[%s]=" % i,dict[i]
print "###########items#####################"
for (k,v) in dict.items():
print "dict[%s]=" % k,v
print "###########iteritems#################"
for k,v in dict.iteritems():
print "dict[%s]=" % k,v
print "###########iterkeys,itervalues#######"
for k,v in zip(dict.iterkeys(),dict.itervalues()):
print "dict[%s]=" % k,v
|
4. 遍历list的三种方法
1 2 3 4 5 6 7 | for key in lst :
print key
for i in range(len(lst)) :
print lst[i]
for index, key in enumerate(lst) :
print key
|
5. 字典排序的方法
字典按照value的值从大到小的顺序来排序(默认从小到排序)。
1 2 3 4 5 | dic = { 'a' :31, 'bc' :5, 'c' :3, 'asd' :4, 'aa' :74, 'd' :0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict
[( 'aa' , 74), ( 'a' , 31), ( 'bc' , 5), ( 'asd' , 4), ( 'c' , 3), ( 'd' , 0)]
|
下面我们分解下代码
print dic.iteritems() 得到[(键,值)]的列表。
然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。
对字典按键(key)排序:
1 2 3 4 5 | dic = { 'a' :31, 'bc' :5, 'c' :3, 'asd' :4, 'aa' :74, 'd' :0}
dict= sorted(dic.iteritems(), key=lambda d:d[0]) # d[0]表示字典的键
print dict
#sorted中第三个可选参数为reverse, True表示从大到小排序
#默认reverse = False
|
6. 子类和父类
子类构造函数调用父类的初始化构造函数
1 2 3 4 5 6 | class A(object) :
def init(self) :
print "testA
class B(A) :
def init(self) :
A.init(self)
|
子类调用父类的同名函数
7. 更灵活的参数传递方式
1 2 3 | func2(a=1, b=2, c=3) #默认参数
func3(*args) #接受任意数量的参数, 以tuple的方式传入
func4(**kargs) #把参数以键值对字典的形式传入
|
在变量前加上星号前缀(*),调用时的参数会存储在一个 tuple()对象中,赋值给形参。在函数内部,需要对参数进行处理时,只要对这个 tuple 类型的形参(这里是 args)进行操作就可以了。因此,函数在定义时并不需要指明参数个数,就可以处理任意参数个数的情况。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | def calcSum(*args):
sum = 0
for i in args:
sum += i
print sum
#调用:
calcSum(1,2,3)
calcSum(123,456)
calcSum()
#输出:
6
579
0
#################################
def printAll(**kargs):
for k in kargs:
print k, ':' , kargs[k]
printAll(a=1, b=2, c=3)
printAll(x=4, y=5)
#输出:
a : 1
c : 3
b : 2
y : 5
x : 4
|
python的中参数可以多种形式进行组合, 在混合使用时,首先要注意函数的写法,必须遵守:
1.带有默认值的形参(arg=)须在无默认值的形参(arg)之后
2.元组参数(*args)须在带有默认值的形参(arg=)之后
3.字典参数(**kargs)须在元组参数(*args)之后
在函数被调用时,参数的传递过程为:
1.按顺序把无指定参数的实参赋值给形参
2.把指定参数名称(arg=v)的实参赋值给对应的形参
3.将多余的无指定参数的实参打包成一个 tuple 传递给元组参数(*args)
4.将多余的指定参数名的实参打包成一个 dict 传递给字典参数(**kargs)
8. lambda 表达式
lambda 表达式可以看做一种匿名函数
lambda 表达式的语法格式:
lambda 参数列表: 表达式 #参数列表周围没有括号,返回值前没有 return 关键字,也没有函数名称
1 2 3 4 5 6 7 | def fn(x):
return lambda y: x + y
#调用
a = fn(2)
print a(3)
#输出
5
|
分析
: fn(2)调用后, 相当于a = lambda y: 2 + y, 然后a(3)被调用时.
相当于 print lambda y: 2 + 3
以上就是Python常用方法和技巧汇总的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python 定时修改数据库的示例代码_Python
Python写入已存在的excel数据实例
Python中什么是算术运算符、赋值运算符和复合运算符?
在 flask 中集成 vue
Python如何实现优先级队列(附代码)
Python用什么开发工具?
Python怎么计算加减乘除
初学Python 请教学习路线
Python3.6想使用urllib2包怎么办
Python基础学习之列表的介绍
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python常用方法和技巧汇总