python进阶
4. 一些简单高级写法
4.1 推导式
我们的推导式可以分为
- 列表推导式
- 元组推导式
- 字典推导式
- 集合推导式
其中最重要的就是列表推导式了,这个是最常用的
list = [i for i in range(0,100)]
一个列表中有1到99的数,生成这样一个列表
单if 条件
lists = [i for i in range(0, 100) if i%2==0]
多if条件
listed = [i for i in range(0, 100) if i%2==0 if i>33 if i >55]
当我们个判断条件的时候,我们不能使用 && 符号,我们需要使用 多个 if 进行
使用多个 ‘if’ 和 ‘else’ 条件
除了使用多个 ‘if’ 条件,我们还可以在列表推导式中使用 ‘else’ 条件。通过添加 ‘else’ 条件,我们可以为不满足之前的 ‘if’ 条件的元素生成一个默认值。
下面是一个示例,演示了如何在一个列表推导式中使用多个 ‘if’ 和 ‘else’ 条件来生成一个新的列表:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = [x if x % 2 == 0 else -1 for x in numbers if x > 5]
print(filtered_numbers) # 输出:[-1, 6, -1, 8, -1, 10]
在这个示例中,我们先判断每个元素是否大于5,然后再根据是否为偶数来生成列表元素。如果元素是偶数,则保持原值;如果不是偶数,则将其替换为-1。
元组推导式跟列表推导式的写法基本一致
字典推导式
一个变量
dicts = {k: 3 for k in range(2,5)}
print(dicts)
两个变量
decting = {k:v for k,v in dicts.items()}
print(decting)