1988's Studio.

学习Python时总结的小技巧

2018/08/11

pic

##1. 列表推导式

你有一个list:bag = [1, 2, 3, 4, 5]

现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10]

大多初学者,根据之前语言的经验会大概这样来做

bag = [1, 2, 3, 4, 5]  

for i in range(len(bag)):  

   bag[i] = bag[i] * 2

但是有更好的方法:

bag = [elem * 2 for elem in bag]

这叫做Pythpn的列表推导式。

##2. 遍历列表

继续,还是上面的列表。

如果可能尽量避免这样做:

bag = [1, 2, 3, 4, 5]  

for i in range(len(bag)):  

   print(bag[i])

取而代之的应该是这样:

bag = [1, 2, 3, 4, 5]  

for i in bag:  

   print(i)

如果x是一个列表,你可以对它的元素进行迭代。多数情况下你不需要各元素的索引,但如果你非要这样做,那就用enumerate函数。它像下边的样子:

bag = [1, 2, 3, 4, 5]  

for index, element in enumerate(bag):  

   print(index, element)

##3. 元素互换
之前我们可能会这样做:

a = 5  

b = 10

# 交换 a 和 b

tmp = a  

a = b  

b = tmp

Python提供了一个更好的方法:

a = 5  

b = 10  

# 交换a 和 b

a, b = b, a

##4. 初始化列表

假如你要一个是10个整数0的列表,你可能首先想到:

bag = []  

for _ in range(10):  

   bag.append(0)

换个方式:

bag = [0] * 10

##5. 构造字符串

我们经常需要打印字符串。要是有很多变量,避免下面这样:

name = 'Raymond'  

age = 22  

born_in = 'Oakland, CA'  

string = 'Hello my name is ' + name + 'and I'm ' + str(age) + ' years old. I was born in ' + born_in + '.'  

print(string)

可以用个漂亮简洁的方法来代替,.format。

这样做:

name = 'Raymond'  

age = 22  

born_in = 'Oakland, CA'  

string = 'Hello my name is {0} and I'm {1} years old. I was born in {2}.'.format(name, age, born_in)

print(string)
CATALOG