A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我的地瓜烧呢

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 我的地瓜烧呢 初级黑马   /  2019-3-31 20:29  /  1233 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

都说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]翻转列表。

徐畅1.jpg (64.93 KB, 下载次数: 3)

徐畅1.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马