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

 更新时间:2015年05月18日 09:54:05   投稿:junjie  
这篇文章主要介绍了收藏的一些Python常用方法和技巧,本文讲解了逆转字符串的三种方法、遍历字典的四种方法、遍历list的三种方法、字典排序的方法等Python常用技巧和方法,需要的朋友可以参考下

1. 逆转字符串的三种方法
1.1. 模拟C++中方法, 定义一个空字符串来实现
通过设置一个空字符串, 然后讲参数中的字符串从后往前遍历, 使用字符串的加法合并为新的字符串

复制代码 代码如下:

def reverse(text) :
    str = ''
    index = len(text) - 1
    while index >= 0 :
        str += text[index]
        index -= 1
    return str

1.2. 使用切片法
这个是Python中的一个特性, 切片可以取负值,这是采用切片的方法,设置步长为-1,这样就实现了反过来排序。
复制代码 代码如下:

def reverse_1(text) :
    return text[::-1]

1.3. 使用列表

采用列表的reverse方法,先将text转换为列表,然后通过reverse方法反转,然后在通过join连接为字符串。

复制代码 代码如下:

def reverse_2(text) :
    temp = list(text)
    temp.reverse()
    return ''.join(temp)

2. 使用reduce
使用匿名函数和reduce()
复制代码 代码如下:

def reverse_3(text) :
    return reduce(lambda x, y : y + x, text)
print reverse_3("Hello")

3. 遍历字典的四种方法

复制代码 代码如下:

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的三种方法
复制代码 代码如下:

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的索引

5. 字典排序的方法
字典按照value的值从大到小的顺序来排序(默认从小到排序)。
复制代码 代码如下:

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)排序:

复制代码 代码如下:

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. 子类和父类
子类构造函数调用父类的初始化构造函数

复制代码 代码如下:

class A(object) :
    def __init__(self) :
        print  "testA
class B(A) :
    def __init__(self) :
        A.__init__(self)

子类调用父类的同名函数
复制代码 代码如下:

super().fuleifunction()

7. 更灵活的参数传递方式
复制代码 代码如下:

func2(a=1, b=2, c=3) #默认参数
func3(*args)         #接受任意数量的参数, 以tuple的方式传入
func4(**kargs)       #把参数以键值对字典的形式传入

在变量前加上星号前缀(*),调用时的参数会存储在一个 tuple()对象中,赋值给形参。在函数内部,需要对参数进行处理时,只要对这个 tuple 类型的形参(这里是 args)进行操作就可以了。因此,函数在定义时并不需要指明参数个数,就可以处理任意参数个数的情况。

复制代码 代码如下:

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 关键字,也没有函数名称

复制代码 代码如下:

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等待10秒执行下一命令的方法

    python等待10秒执行下一命令的方法

    在本篇文章里小编给大家整理的是关于python等待10秒执行下一命令的方法及实例,需要的朋友们可以参考下。
    2020-07-07
  • 基于Python的一个自动录入表格的小程序

    基于Python的一个自动录入表格的小程序

    这篇文章主要介绍了基于Python的一个自动录入表格的小程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • python 布尔注入原理及渗透过程示例

    python 布尔注入原理及渗透过程示例

    这篇文章主要介绍了python 布尔注入原理及渗透过程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Python统计字符内容的占比的实现

    Python统计字符内容的占比的实现

    本文介绍了如何使用Python统计字符占比,包括字符串中字母、数字、空格等字符的占比,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • python模拟登录并且保持cookie的方法详解

    python模拟登录并且保持cookie的方法详解

    模拟登录相信对大家来说都不陌生,下面这篇文章主要给大家介绍了关于python模拟登录并且保持cookie的方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • 详解supervisor使用教程

    详解supervisor使用教程

    supervisor是用python写的一个进程管理工具,用来控制进程,本文为大家介绍一下supervisor使用教程,希望能够帮助到你。
    2017-11-11
  • 解决安装sklearn包失败问题

    解决安装sklearn包失败问题

    这篇文章主要介绍了解决安装sklearn包失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-10-10
  • numpy系列之数组重塑的实现

    numpy系列之数组重塑的实现

    本文主要介绍了numpy数组重塑。所谓数组重塑就是更改数组的形状,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Django基础之Model操作步骤(介绍)

    Django基础之Model操作步骤(介绍)

    下面小编就为大家带来一篇Django基础之Model操作步骤(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • python处理json数据中的中文

    python处理json数据中的中文

    这篇文章主要介绍了python处理json数据中的中文问题,需要的朋友可以参考下
    2014-03-03

最新评论