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常用方法和技巧

本文地址: http://www.cppcns.com/jiaoben/python/124860.html

python一些常用方法_收藏整理的一些Python常用方法和技巧相关推荐

  1. python学习图解_大牛整理!Python学习方法和学习路线,看完茅塞顿开!

    原标题:大牛整理!Python学习方法和学习路线,看完茅塞顿开! Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团 ...

  2. python开发环境对比_【整理】各种Python的IDE(集成开发环境)的总结和对比 | 在路上...

    背景 之前已经写帖子,解释了关于Python的开发环境: 但是,对于Python的IDE方面,介绍的不是很多. 此处,专门整理了,各种Python的IDE. 各种Python的IDE PyScript ...

  3. python 路径格式化_吐血整理!140种Python标准库、第三方库和外部工具都有了!...

    导读: Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据 ...

  4. python抓取股票竞价数据_【整理】用Python+beautifulsoup抓取股票数据

    [刚开始写总结,读者如果对我的内容有任何建议欢迎留言反馈,或直接加QQ1172617666,期待交流] 先贴上代码,再详细的写一下在写这些代码的过程中遇到的问题,解决的方法. 这些代码完成的任务是:访 ...

  5. python的精髓_教你玩转Python!一文总结Python入门到精髓的窍门

    (建议收藏) 很多人应该都有过这种经历,大量重复性工作:日报.周报.各种报,无穷无尽:不计其数的数据提取······琐碎繁杂的事务让工作的效率极低.如果可以一键完成就好了. 对这些问题来说,最高效的解 ...

  6. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  7. python做运动控制_第一课:用Python操控小龟小车运动

    欢迎来到小龟的课堂,今天我们讲如何用小龟小车的车载Python控制小车运动. 如果小伙伴还不会使用小龟小车的Python编辑器的话,可以阅读这篇教程<如何使用小龟小车的Python编辑器> ...

  8. print python excel分隔_合并/拆分 Excel?Python、VBA轻松自动化

    作者 | Ryoko 来源 | 凹凸数据 当你收集了 n 个人的 EXCEL 记录表,需要将它们汇成一个总表时你会怎么做呢? 如果不通过技术手段,要一个个打开再复制粘贴也太麻烦了吧! 此时就需要一个通 ...

  9. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...

最新文章

  1. HDU——1106排序(istringstream的使用、STLvector练习)
  2. 【原创翻译】文件与文件夹
  3. 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
  4. 随手练——HDU-2037 、P-2920 时间安排(贪心)
  5. python tuple args_Python基本数据类型之tuple
  6. 二、Python安装扩展库
  7. Matlab中计算程序运行时间的三种方法,以及获取系统时间的方法
  8. 2013dgtcs 数对
  9. Android--手势及触摸事件的注意点(一)
  10. 3x3矩阵怎么求逆矩阵_矩阵型组织结构,郭士纳与任正非都是怎么说的?
  11. SVN分支管理以及跨分支打包
  12. ThinkBook 14P Win11网卡驱动掉了-解决方案
  13. java-学生管理系统源代码
  14. webrtc VAD 算法
  15. vue 去掉黄色警告
  16. 使用PING测试IP地址
  17. mac电脑的vue问题
  18. 基于ngc的cuda镜像封装TensorFlow 实例
  19. Github使用教程(一)--搭建Github环境
  20. php7 phalcon,GitHub - shyn0121/cphalcon7: Phalcon7 - Web framework for PHP7.x 高性能PHP7框架

热门文章

  1. 图的广度优先搜索算法
  2. 桥牌笔记:挤牌的条件之一,调整赢墩到只差一墩
  3. [转载] python的面向对象和类与对象
  4. [转载] Python数据分析与可视化学习笔记(一)数据分析与可视化概述
  5. [转载] 6.3 cmath--数学函数
  6. 异步复位同步释放机制-系统完美稳定
  7. RedHat命令笔记
  8. Java接口之间的继承
  9. HTML5 Notification
  10. 第3章 控制程序流程(1)