python小知识,列表推导式

使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。

 

1、生成指定范围的数值列表,语法格式如下:

list=[Expression for var in range if condition]

  list:表示生成列表的名称

  Expression :表达式,用于计算列表的元素

  var:循环变量

  range:采用range()函数生成的range对象

  condition:条件表达式,用于指定筛选条件

示例:

"""
author:锦衣大镖客
create:2020年12月19日
功能:列表推导式试验
"""
lis=[i for i in range(10)]
print("lis:",lis)
#将lis列表中的数字全部翻10倍

lis_fb=[i*10 for i in lis]
print("lis_fb:",lis_fb)


#配合随机数 random模块使用
import random
#取10位随机数生成一个列表
lis_random=[random.randint(1,1000) for i in range(10)]
print("lis_random:",lis_random)

#条件筛选组合成新列表
lis_if=[x for x in lis_random if x>200]
print("lis_if:",lis_if)

#列表推导式建立二维列表
list_tow=[[i for i in range(3)] for j in range(5)]
print("lis_tow:",list_tow)

执行结果:

推导式生成元组对象:

#使用推导式建立元组
tuple_random=(x for x in range(10))
print("tuple_random:",tuple_random)
#可以在转换后使用for进行遍历,也可以使用__next__方法进行遍历
print(tuple_random.__next__()) #取出数值
print("tuple_random的类型为:",type(tuple_random))
#需要使用tuple进行类型转换
# print(tuple(tuple_random))
for i in tuple_random:
    print("shuchu",i)
print(tuple(tuple_random))
#依照上述示例可以看出,无论通过哪种方法输出,如果再想使用该生成器对象,的补习重新创建一个生成器对象,因为遍历后原生成器对象已经不存在了

执行结果:

 

 

posted @ 2020-12-19 16:55  菌子石雨  阅读(220)  评论(0编辑  收藏  举报