Python--如此高效的代码片段

出自:
http://www.maxburstein.com/blog/python-shortcuts-for-the-python-beginner/

我是一个C++程序员,所以把拿C++与Python进行比较,从而来显示Python的高效。

交换变量
交换两个变量的值,应该是应届毕业生面试常见的问题,在c++中,我们使用指针或是引用来完成,或是使用位运算完成,不借助第三方变量等等。那么看看python呢?

x = 6
y = 5

x, y = y, x

内联if语句

print "Hello" if True else "World"
>>> Hello

连接
在C++中,字符串连接都是重载了+或是+=运算符,数组不能进行连接。在python中很简单:

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> ['Packers', '49ers', 'Ravens', 'Patriots']

print str(1) + " world"
>>> 1 world

print `1` + " world"
>>> 1 world

print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1

数字技巧
幂运算:
在C++中,可以使用pow,但是在python中非常的简便:
2的5次幂:

print 2**5
>> 32

比较
在C++中,比如x大于1小于3,我们要这样:x > 1 && x < 3,在python中更接近数学形式:

x = 2

if 3 > x > 1:
    print x
>>> 2

if 1 < x > 0:
    print x
>>> 2

并行迭代
这是C++中没有的。

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]

for teama, teamb in zip(nfc, afc):
    print teama + " vs. " + teamb

>>> Packers vs. Ravens
>>> 49ers vs. Patriots

使用索引迭代(遍历)

teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
    print index, team

>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots

从列表中去除偶数
可以像C++一样,python可以:

numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
    if number%2 == 0:
        even.append(number)

python有更简便的方法:

numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]

初始化列表
c++11中的初始化列表,已经让我们觉得很牛逼了,但是看看python中:

items = [0]*3
print items
>>> [0,0,0]

列表转字符串

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一苇渡江694

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值