视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
收藏整理的一些Python常用方法和技巧
2020-11-27 14:33:35 责编:小采
文档


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

下载本文
显示全文
专题