##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)