详解python的三元表达式、列表生成式、字典生成式

本文介绍了Python编程中的三元表达式、列表生成式和字典生成式。三元表达式提供简洁的二选一逻辑,列表生成式用于高效创建列表,而字典生成式则用于快速生成字典。文中通过实例详细解析了这三种语法结构的使用方法。

大家好,这里是为代码封神的封神榜(有点吹牛皮了,哈哈)。还是新人初来乍到,希望大家多多指教。
在这里插入图片描述

1、三元表达式

  • 定义格式: true_return if condition else false_return
  • if 后条件成立返回,true_return,不成立返回false_return
  • 当功能需求仅仅是二选一的情况下,推荐使用三元表达式

实例如下:

res = '坚持学习python' if 3>1 else '不学了!'
print(res)
# 结果
# 坚持学习python

'''
三元表达式:
将符合条件的值返回,用一个变量接收
条件成立返回true_return
条件不成立返回false_return
'''

2、列表生成式

  • 定义

  • 列表生成式提供了一种简明扼要的方法来创建列表。它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for
    或者 if 语句。表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表。

  • 格式

  • [表达式 for 变量 in 列表 if 条件]

实例1如下:

l = [1,2,3,4,5]
# for循环实现
l1 = []
for i in l:
    l1.append(i)
print(l1)


# 列表生成成式实现
res = [x for x in l]
print(res)

#结果
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

列表运行图示:在这里插入图片描述

实例2如下:

# 输出100以内的偶数
# for循环解决
get_num = []
for i in range(0,100,2):
    get_num.append(i)
print(get_num)

# 列表生成式
get_num_lst = [x for x in range(100) if x%2 ==0]
print(get_num_lst)

3、字典生成式

  • 定义:同列表生成式一样,字典生成式是用来快速生成字典的。

    格式:{字典内容+循环条件+ i f 判断条件(产生条件)}

实例如下:

# for循环做法
lst_info_g = ['name','age','number']
lst_info_v = ['HammerZe',18,'199****1234']
lst_info_dict = {}
for i in range(len(lst_info_g)):
    # 让lst_info_g里的元素和lst_info_v里的元素一一对应
    lst_info_dict[lst_info_g[i]] = lst_info_v[i]
print(lst_info_dict)
# 结果
{'name': 'HammerZe', 'age': 18, 'number': '199****1234'}

#字典生成式
lst_info = [('name','HammerZe'),('age',18),('number','199****1234')]
dict_info = {k:v for k,v in lst_info}
print(dict_info)
# 结果
{'name': 'HammerZe', 'age': 18, 'number': '199****1234'}

有 i f的字典生成式:
实例如下:

lst_info = ['HammerZe','jason','tony','tom']
# 用枚举的方法,获取字典的k,当获取元素为HammerZe时,不打印输出剩下的元素
dict_info = {k:v for k,v in enumerate(lst_info) if v!='HammerZe' }
print(dict_info)
# 结果
{1: 'jason', 2: 'tony', 3: 'tom'}



''' enumerate()枚举方法
	该方法针对for循环使用,每次会产生两个结果,默认从0开始,可以通过start修改起始位置,从几开始!
	'''
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值