永发信息网

如何让Python简洁高效

答案:1  悬赏:40  手机版
解决时间 2021-03-30 03:21
如何让Python简洁高效
最佳答案
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.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中兴手机小鲜3电信版和全网通的区别?
理财40万 利率3.4% 期限期限三十四天 利息是
单选题一个精原细胞有两对同源染色体A和a,B
PE塑料 静电怎么消除
阿帕图英语的介绍
新年作阅读答案
为什么四合院的大门涂红色
下列各句中,没有语病的一项是A.阿佩尔受到起
乙亥年己丑月乙巳日亥时出生的女孩的姻缘
我想问一下,电信一元一天500M流量,我昨天包
梦幻西游100级罗汉金钟棒子多钱
中国移动为什么无法退订套餐,操作后面应该有
丽晶会地址好找么,我有些事要过去,
三氯化铬和二氯化铬的区别和用途是什么
国企老总是什么级别
推荐资讯
Excel 右键下拉菜单的“超链接”不见了。如何
PS修图的时候觉得慢是Cpu还是显卡的锅
大家觉得网购这个下摆臂可靠吗
国内快餐行业适不适合创业
为什么最近朋友圈都在发怀念以前放羊的日子
想去做假体下巴,问下烟台华韩整型怎么样
求:汉书朱买臣传的全文翻译
双铱金和铱铂金火花塞哪个好?
启动JMSService 时出错,请问是什么原因
中介推荐我去荷兰鹿特丹伊拉斯慕斯大学的mari
被东西,刺手指里,自己挑不好,怎么搞
3DMAX弯曲怎么显示不出来
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?