源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

收藏整理的一些Python常用方法和技巧

  • 时间:2020-07-08 05:36 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:收藏整理的一些Python常用方法和技巧
[b]1. 逆转字符串的三种方法[/b] [b]1.1. 模拟C++中方法, 定义一个空字符串来实现[/b] 通过设置一个空字符串, 然后讲参数中的字符串从后往前遍历, 使用字符串的加法合并为新的字符串
[u]复制代码[/u] 代码如下:
def reverse(text) :     str = ''     index = len(text) - 1     while index >= 0 :         str += text[index]         index -= 1     return str
[b]1.2. 使用切片法[/b] 这个是Python中的一个特性, 切片可以取负值,这是采用切片的方法,设置步长为-1,这样就实现了反过来排序。
[u]复制代码[/u] 代码如下:
def reverse_1(text) :     return text[::-1]
[b]1.3. 使用列表[/b] 采用列表的reverse方法,先将text转换为列表,然后通过reverse方法反转,然后在通过join连接为字符串。
[u]复制代码[/u] 代码如下:
def reverse_2(text) :     temp = list(text)     temp.reverse()     return ''.join(temp)
[b]2. 使用reduce[/b] 使用匿名函数和reduce()
[u]复制代码[/u] 代码如下:
def reverse_3(text) :     return reduce(lambda x, y : y + x, text) print reverse_3("Hello")
[b]3. 遍历字典的四种方法[/b]
[u]复制代码[/u] 代码如下:
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
[b]4. 遍历list的三种方法[/b]
[u]复制代码[/u] 代码如下:
for key in lst :     print key     for i in range(len(lst)) :     print lst[i] for index, key in enumerate(lst) :     print key    //index是list的索引
[b]5. 字典排序的方法[/b] 字典按照value的值从大到小的顺序来排序(默认从小到排序)。
[u]复制代码[/u] 代码如下:
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)排序:
[u]复制代码[/u] 代码如下:
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
[b]6. 子类和父类[/b] 子类构造函数调用父类的初始化构造函数
[u]复制代码[/u] 代码如下:
class A(object) :     def __init__(self) :         print  "testA class B(A) :     def __init__(self) :         A.__init__(self)
子类调用父类的同名函数
[u]复制代码[/u] 代码如下:
super().fuleifunction()
[b]7. 更灵活的参数传递方式[/b]
[u]复制代码[/u] 代码如下:
func2(a=1, b=2, c=3) #默认参数 func3(*args)         #接受任意数量的参数, 以tuple的方式传入 func4(**kargs)       #把参数以键值对字典的形式传入
在变量前加上星号前缀(*),调用时的参数会存储在一个 tuple()对象中,赋值给形参。在函数内部,需要对参数进行处理时,只要对这个 tuple 类型的形参(这里是 args)进行操作就可以了。因此,函数在定义时并不需要指明参数个数,就可以处理任意参数个数的情况。
[u]复制代码[/u] 代码如下:
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 关键字,也没有函数名称
[u]复制代码[/u] 代码如下:
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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部