推导列表
一 列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。
列表推导常用语法格式:
- 生成值得顶范围的数值列表
语法:list = [Expression for var in range]
说明:
Expression:表达式,用于计算新列表的元素
var:循环变量
range:采用range()函数生成的range对象
示例:
>>> import random
>>> randomnumber = [random.randint(10,100) for i in range(10)]
>>> print("生成的随机数有:",randomnumber)
生成的随机数有: [17, 62, 55, 70, 90, 100, 16, 35, 72, 65]
>>> word = [chr(i) for i in range(97,123) ]
>>> print("生成字母列表为:",word)
生成字母列表为: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
- 根据列表生成指定需求的列表
语法:newlist = [Expression for var in list]
说明:
Expression:表达式,用于计算新列表的元素
var:循环变量
list:原列表
示例:
>>> price = [1200,5330,2988,6200,1998,8888]
>>> sale_618 = [int(i*0.5) for i in price]
>>> print("原价:",price)
原价: [1200, 5330, 2988, 6200, 1998, 8888]
>>> print("618价格:",sale_618)
618价格: [600, 2665, 1494, 3100, 999, 4444]
- 从列表中选择符合条件的元素组成信的列表
语法:newlist = [Expression for var in list if condition]
说明:
Expression:表达式,用于计算新列表的元素
var:循环变量
list:原列表
condtion:条件表达式,用于指定筛选条件
示例:
>>> price = [1200,5330,2988,6200,1998,8888]
>>> print("原价:",price)
>>> price_expensive = [i for i in price if i>5000]
原价: [1200, 5330, 2988, 6200, 1998, 8888]
>>> print("奢侈品价格:",price_expensive)
奢侈品价格: [5330, 6200, 8888]