欢迎来到山村网

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

2019-03-02 12:52:15浏览:884 来源:山村网   
核心摘要:  这篇文章主要介绍了收藏的一些Python常用方法和技巧,本文讲解了逆转字符串的三种方法、遍历字典的四种方法、遍历list的三种

  这篇文章主要介绍了收藏的一些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中用于处理字符串的center()方法

上一篇:

Python字符串处理之count()方法的使用

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com