1.
numbers = range(10)
size = len(numbers)
evens = []
i = 0
while i < size:
if i % 3 == 0:
evens.append(i)
i += 1
print(evens)
以上是痛苦的,在c语言中或许可行,在python中却是不合理的,执行速度会很慢。
简化为:
[i for i in range(10) if i % 3 == 0]
2.
i = 0
seq = ["one","two","three"]
for element in seq:
seq[i] = '%d: %s'%(i,seq[i])
i += 1
print(seq)
简化为:
seq = ["one","tewo","three"]
for i,element in enumerate(seq):
seq[i] = '%d: %s'%(i,seq[i])
print(seq)
重构:
def reement(pos,element):
print('%d:%s'% (pos,element))
seq = ["one","two","three"]
[reement(i,el) for i,el in enumerate(seq)]