都说python语言简洁高效,在学习过程中无意发现了大神分享的一些小Tips,与大家分享
你有一个list:bag = [1, 2, 3, 4, 5]
1.现在你想让所有元素翻倍,让它看起来是这个样子:[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]
遍历列表
这种方法让人很无语
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)
元素互换
学过其他编程语言的同学可能会这样:
a = 5
b = 10
tmp = a
a = b
b = tmp
用python更好的办法
a = 5
b = 10
a,b =b,a
4.初始化列表:
假如要一个是10个整数0的列表,可能首先想到:
bag = []
for _ in range(10):
bag.append(0)
简洁优雅的方式:
bag = [0] * 10
在列表中切片/步进
可以指定start的点和stop点,就像这样list[start:stop:step]。我们取出列表中的前5个元素:
bag = [0,1,2,3,4,5,6,7,8,9]
for elem in bag[5]:
print(elem)
这就是切片,我们指定stop点是5,再停止前就会从列表中取出5个元素。
要是最后5个元素怎么做?
bag = [0,1,2,3,4,5,6,7,8,9]
for elem in bag[-5]:
print(elem)
-5意味着从列表的结尾取出5个元素。如果想对列表中元素间隔操作, 你可能会这样做:
bag = [0,1,2,3,4,5,6,7,8,9]
for index,element in enumerate(bag):
if index % 2 == 0:
print(elem)
但是你应该这样来做:
bag = [0,1,2,3,4,5,6,7,8,9]
for elem in bag[::2]:
print(elem)
bag = list(range(0,10,2))
print(bag)
这就是列表中的步进。list[::2]意思是遍历列表同时两步取出一个元素。可以用list[::-1]翻转列表。
|
|