python进阶之推导式

102 阅读1分钟

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)