python-解析式

 

列表解析式(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 条件}

 

posted @ 2022-11-20 20:19  钟鼎山林  阅读(29)  评论(0编辑  收藏  举报