python基础学习(三)-- list comprehensions

作者:Shine 发布于:2018-06-27 16:52:23 浏览:796次 分类:PHP

python基础学习(三)-- list comprehensions

import os
# 列表生成式即list comprehensions 是python内置的非常简单却非常强大的可以用来创建list的生成式
# example: 生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))
print(list(range(1, 11)))

# 比如要生成[1*1, 2*2, 3*3 ...]这样的list 不动脑子的做法是循环:
l = list(range(1, 11))

for k, v in enumerate(l):
    l[k] = v * v

print(l)

# 而列表生成式则可以用一行语句代替循环生成上面的list:
print([x * x for x in range(1, 11)])

# 写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来  for循环后面还可以加上if判断
print([x * x for x in range(1, 11) if x % 2 == 0])

# 还可以使用两层循环,可以生成全排列:
print([n + m for n in 'ABC' for m in 'XYZ'])

# example:列出当前目录下的所有文件和目录名,可以通过一行代码实现:
print([d for d in os.listdir('.')])

# 列表生成式也可以使用两个变量来生成list
d = {'x': 'A', 'y': 'B', 'z': 'C'}
print([k + '=' + v for k, v in d.items()])

# 最后把一个list中所有的字符串变成小写:
l = ['Hello', 'World', 'IBM', 'Apple']
print([s.lower() for s in l])

# practice:如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错,使用内建的isinstance函数可以判断一个变量是不是字符串:
practice = ['Hello', 'World', 18, 'Apple', None]

print([s.lower() for s in practice if isinstance(s, str) == True])

# 运用列表生成式,可以快速生成list,可以通过一个list推导出另一个list,而代码却十分简洁。


标签: python compre
声明:文章内容由作者原创或整理,转载请标明出处!
暂留位置!--请勿随意修改