列表解析式(List Comprehension)
列表解析式的优势
- 比循环更节省时间和空间。
- 需要更少的代码行。
- 可将迭代语句转换为公式。
公式
# 不加条件
[返回值 for 元素 in 可迭代对象 ]
# 需要条件
[返回值 for 元素 in 可迭代对象 if 条件]
# 多条件,多条件是且的关系都要完成
[返回值 for 元素 in 可迭代对象 if 条件 if 条件]
# 有条件分支
[返回值 if 条件 else 返回值 for 元素 in 可迭代对象]
# 先过滤 在有条件分支
[返回值 if 条件 else 返回值 for 元素 in 可迭代对象 if 条件 ..]
列如:筛选出下面列表为正数的值
li = [1,-2,3,6,0,-7,8,10,-12]
# 筛选列表里面为正数的值
data = [x for x in li if x>= 0 ]
print(data)
# 筛选不为0 且为正数,非正数时乘于2返回
data01 = [x if x>0 else x*2 for x in li if x != 0]
print(data01)
字典解析式
{k,v for k,v in data.items()}
# 加条件
{k,v for k,v in data.items() if 条件}
标签:正数,迭代,python,条件,返回值,解析,data From: https://www.cnblogs.com/niunai/p/16909418.html