三元表达式/推导式

简介: 三元表达式/推导式

前言

「想要深入了解一下移步至:https://www.yuque.com/docs/share/210e0b26-b09a-4b71-9151-be9519956aff?# 《三元表达式/推导式》」

欢迎私聊或留言其他的用法。这里的卷货,清安(拾贰)

列表推导式简单用法

list_ = [58,59,60,61,89,100,20,30]
print(i for i in list_)
# <generator object <genexpr> at 0x00000182C9E0A820>

如果单纯这样写,会得到一个生成器。我们改进一下:

list_ = [58,59,60,61,89,100,20,30]
print([i for i in list_])
# [58, 59, 60, 61, 89, 100, 20, 30]

这样就能得到结果了,虽然跟原来的没啥区别

列表推导式的小进阶用法

list_ = [58,59,60,61,89,100,20,30]
print([i for i in sorted(list_,reverse=False)])
"""[20, 30, 58, 59, 60, 61, 89, 100]"""

它等价于如下的写法:

for i in sorted(list_,reverse=False):
    list1.append(i)
print(list1)

简单的字典推导式

b = {"name":"拾贰","age":18,"sex":"男","home":"深圳"}
print({keys for keys in b.items()})
# {('age', 18), ('home', '深圳'), ('sex', '男'), ('name', '拾贰')}

它等价于如下写法:

a = set({})
for keys in b.items():
    a.add(keys)
print(a)

字典推导式的小进阶用法

此处也是群友日常分享的其中一题

students = [
{'name': '小花', 'age': 19, 'score': 90, 'gender': '女', 'tel':
'15300022839'},
{'name': '明明', 'age': 20, 'score': 40, 'gender': '男', 'tel':
'15300022838'},
{'name': '华仔', 'age': 18, 'score': 90, 'gender': '女', 'tel':
'15300022839'},
{'name': '静静', 'age': 16, 'score': 90, 'gender': '不明', 'tel':
'15300022428'},
{'name': 'Tom', 'age': 17, 'score': 59, 'gender': '不明', 'tel':
'15300022839'},
{'name': 'Bob', 'age': 18, 'score': 90, 'gender': '男', 'tel':
'15300022839'}
]
lis = {}
for i in students:
    if i['score'] <= 60:
        lis[i['name']] = i['score']
print(lis)
# 等价于
res = {i['name']:i['score'] for i in students if i['score']<=60}
print(res)
"""
{'明明': 40, 'Tom': 59}
"""

简单的三元表达式

x = 1
y = 2
if x > y:
    print(x)
else:
    print(y)1

等价于下面的写法

a = 1
b = 2
print(a if a > b else b)


目录
相关文章
|
6月前
三元表达式使用
三元表达式使用
60 0
|
6月前
|
JavaScript 前端开发 C#
什么是三元表达式?“三元”表示什么意思?
什么是三元表达式?“三元”表示什么意思?
|
C语言
【学习笔记之我要C】求值表达式
【学习笔记之我要C】求值表达式
72 0
|
算法 Java C++
【27. 表达式求值(中缀表达式)】
表达式求值(中缀) **前提准备** 需要开辟`俩个栈`,一个用于`存放数字`,另一个用于`存放运算符`。 需要用到`unordered_map`用来存放`运算符的优先级`。
200 0
【27. 表达式求值(中缀表达式)】
|
Serverless vr&ar 容器
F#表达式求值
重点介绍如何用F#求表达式 ( a + x ) * b 的值
907 0
F#表达式求值
|
JavaScript 关系型数据库 Linux
三元表达式,列表解析和生成器表达式
三元表达式 在以前,在诸如比较两个数大小的时候,通常的写法都是下面的样子 if x > y: print("the max is x") else: print("the max is y") 三元表达式的语法为: True if expression else False 现在可以...
1207 0