永发信息网

如何让Python简洁高效

答案:1  悬赏:40  手机版
解决时间 2021-03-30 03:21
  • 提问者网友:孤山下
  • 2021-03-29 06:45
如何让Python简洁高效
最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-03-29 07:23
1. List Comprehensions

使用list comprehension可以杜绝掉50%以上的for循环,后者的效率极其低下(可以看看C源码的实现),而且不够紧凑。

(1) Python官方的例子:

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x !=y]

运行结果得到:[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

(2) list的反转:lis[::-1]

(3) 找n以内的质数:

>>> filter(lambda number: all(number%x for x in range(2, math.sqrt(prime))), range(2,n))

(4) 凯撒密码:对于一个字符串,每个字母右移n位加密。

code = ''.join([chr((ord(ch)+n-97)%26+97) if ord('a')<=ord(ch)<=ord('z') else ch for ch in str])

2. Python的动态性

Python完爆C++一向自豪的泛型编程,模板编程,举例如下:

def build(type, value):
return type(value)

然后可以就可以build(int,0)了……是不是比C++简练多了?更牛逼的:

def impose(func, value):
return func(value)

def anyfunc(value):
return value*value

print impose(anyfunc, 3) # return 9, Python 2.7

所以,在Python里类型、函数什么的全部都可以看做是操作对象(第一个例子显示了对数据类型的操作,第二个是对函数的操作)。以上所有这些Python的特性,你可能说我用C实现一个一样的就好了。诚然,你可以在C里一个个写出来自己喜欢的特性,但是你写到后面你会发现你只是重新发明了Python,然后拿C写了一个解释器,而且实现得更烂而已。Please!
Don't re-invent the wheel.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯